【发布时间】:2018-06-05 06:36:28
【问题描述】:
我正在使用 Selenium 和 java,我无法点击模态框内的元素。 场景是这样的: 单击框架内的项目后,它会打开一个模态,我需要单击此模态内的一个元素,但我无法获取它。
我已经尝试过:
js.executeScript("document.getElementById('saveexit').scrollIntoView(true);");
我也尝试过这样的 switchTo():
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>
这是从 firefox 开发工具中获取的 CSS 路径:
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
永远找不到对象。
- 问题 1:如果元素在模态框内,则必须对其进行管理 不同?
- 问题2:如何最终点击按钮 saveexit 工作正常吗?
这里分享一个html的sn-p代码:https://codeshare.io/arLW9q
这里是java代码:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"saveexit\"]")))
我也尝试过:
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').click();,它会成功
【问题讨论】:
-
模式不是可以切换到的窗口。它只是页面上的 HTML。您尝试过哪些 Java 代码,结果如何?错误信息等
-
我尝试的Java代码是js.executeScript...结果只是一个错误,说saveexit不存在
标签: javascript java selenium