Javascript Selenium-无法单击模式中的元素

Javascript Selenium-无法单击模式中的元素,javascript,java,selenium,Javascript,Java,Selenium,我使用的是Selenium和java,我无法单击模式中的元素。 情况是这样的: 在点击框架内的一个项目后,它会打开一个模态,我需要点击这个模态内的一个元素,但我无法得到它 我已经试过了: js.executeScript("document.getElementById('saveexit').scrollIntoView(true);"); cssSelector: #saveexit cssPath: html.no-touch body div.remodal-wrapper.remod

我使用的是Selenium和java,我无法单击模式中的元素。 情况是这样的: 在点击框架内的一个项目后,它会打开一个模态,我需要点击这个模态内的一个元素,但我无法得到它

我已经试过了:

js.executeScript("document.getElementById('saveexit').scrollIntoView(true);");
cssSelector: #saveexit
cssPath: html.no-touch body div.remodal-wrapper.remodal-is-opened div.modaliAdesione.remodal.remodal-is-initialized.remodal-is-opened 
div.modal-dialog div.modal-content.modal-custom-content div.modal-footer div.row.text-center div.col-md-6.col-sm-6.col-xs-12 
button#saveexit.btn.modal-button.full-btn
xpath: //*[@id="saveexit"]
我也尝试过用这种方式切换:

while (itr.hasNext()) {
    String popup =  itr.next();
    System.out.println("itr: " + popup);
    driver.switchTo().window(popup);
}
以下是我的模态文件的html:

<div class="modal-dialog">

    <div class="modal-content modal-custom-content">
        <div class="modal-header">
            ...
        </div>
        <div class="modal-body">
            <form id="formTo" class="form-container">
                <div class="row">
                    ...
                </div>
                <div class="small-space"></div>
                <input ...>
                <div class="row">
                    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                        ...
                    </div>
                    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                        ...
                    </div>
                </div>
                <div class="row">
                    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                        ...
                    </div>
                    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                        ...
                    </div>
                </div>
                <div class="small-space"></div>
                <div class="row"> 
                    ...
                </div> 
            </form> 
        </div>
        <div class="small-space"></div>
        <div class="modal-footer">
            <div class="row text-center"> 
                <div class="col-md-6 col-sm-6 col-xs-12">
                    <button class="btn modal-button full-btn" id="saveexit" type="button">SAVE AND EXIT</button>
                </div>
                <div class="col-md-6 col-sm-6 col-xs-12">
                    ...
                </div>
            </div>
        </div>
    </div>
</div>
这个物体永远找不到

问题1:如果元素位于模态内部,则必须对其进行管理 不同地 问题2:如何最终点击按钮 保存退出工作? 以下是html的共享代码片段:

以下是java代码:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"saveexit\"]")))
我也尝试过:

js.executeScript("document.getElementById('saveexit').scrollIntoView(true);");
cssSelector: #saveexit
cssPath: html.no-touch body div.remodal-wrapper.remodal-is-opened div.modaliAdesione.remodal.remodal-is-initialized.remodal-is-opened 
div.modal-dialog div.modal-content.modal-custom-content div.modal-footer div.row.text-center div.col-md-6.col-sm-6.col-xs-12 
button#saveexit.btn.modal-button.full-btn
xpath: //*[@id="saveexit"]
请注意:如果我运行document.getElementById'saveexit'。单击;在浏览器的控制台上,当您按照最佳实践使用Selenium Java客户机时,它会起作用。第一个也是最重要的试验必须是调用高效且经验证的click方法。根据单击方法产生的错误,我们可以使用其他替代解决方案

正如我从JavascriptExecutor和switchTo.window的代码试用中所看到的,您还没有很好地识别出表示保存和退出按钮的WebElement

要单击“保存并退出”按钮,可以使用以下代码块:

new WebDriverWait(driver, 5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='modal-dialog']//div[@class='modal-footer']//button[@class='btn modal-button full-btn' and @id='saveexit']"))).click();

我在脚本中使用jquery修复了它

以下是行号:

js.executeScript$'saveexit'。触发“单击”

我希望它能在将来帮助别人


我不知道为什么纯javascript不起作用…

模式不是可以切换到的窗口。页面上只有HTML。您尝试过哪些Java代码,结果如何?错误消息等。我尝试的Java代码是js.executeScript。。。结果只是一个错误,说saveexit不存在感谢Deb,如果它不工作,我将尽快尝试并接受它,但预期的条件失败了:等待位于的元素的可见性。xpath:…向我们展示更多的outerHTML。可能的元素位于iframe中,或者xpath不唯一。这是从firefox开发工具获取的CSS路径:html.no-touch body div.remodal-wrapper.remodal-is-opened div.modaliAdesione.remodal.remodal-is-initialized.remodal-is-opened div.modal-content.modal-custom-content div.modal-footer div.row.text-centerdiv.col-md-6.col-sm-6.col-xs-12按钮savexit.btn.modal-button.full-btn使用SO志愿者的信息更新主要问题,以帮助您解决问题。