java - WebDriver 从 Javascript CSS 下拉菜单中选择选项在 IDE 中工作,而不是在代码中工作

标签 java javascript css webdriver selenium-webdriver

我无法从 Javascript 下拉列表中选择元素(即下拉列表中的元素未隐藏在 DOM 树中,它们在单击链接之前根本不存在)。我试过以这样的方式使用 Actions 类:

    Actions cursor = new Actions(driver);
    cursor.moveToElement(linkThataDropsMenu).perform();
    cursor.click();

我尝试过使用 clickAndWait() 函数,但它显然不存在于 Java webDriver 库中,而且我在我的代码中尝试了多种暂停和单击的方法,包括单击两次。 clickAndHold() 也什么都不做。

下面是菜单生成后的DOM树。单击时唯一发生变化的是插入 div class="menu"

<div id="divIdActive_2" class="data number active" style="min-height: 21px;">
<a class="opencnl" href="#">
    <span id="opencnlSpan" class="active" style="background-color: 
                             transparent;">800-852-2222</span>
</a>
<img class="tollFree" title="Display name(s) for Toll free function properly on 
                     Verizon Wireless devices, but may be omitted by other carriers on 
                     their devices." src="img/nil.gif">
<input id="customNum" type="hidden" value="8008522222" name="number_2">
<div class="menu">
    <a class="edit" href="#">Change Custom Number</a>
    <a class="copy" href="#">Copy Settings for 0 Selected Lines</a>
    <a class="clear" href="#">Clear Settings For this Line</a>
</div>
</div>

但奇怪的是,我可以使用 click() 或 clickAndWait() 以及完全相同的定位器从 IDE 中删除菜单。从我的 Java 代码中,我可以使用我的定位器来收集我想要单击的元素的文本,但我无法单击该元素。我的 Java 代码中有数百个其他点击命令可以很好地工作,但这里没有。有任何想法吗?至少感谢阅读!

最佳答案

您是否尝试过使用 isDisplayed() 函数?无论您要单击哪个选项,都应该在单击之前可见。所以,我们有 element.isDisplayed(),而不是 selenium 1 的 clickAndWait()。这有一个隐式等待(在创建浏览器驱动程序时设置,请查看文档)。默认情况下,当 Selenium 遇到 isDisplayed 函数时,它会在继续之前等待那么长的时间。

关于java - WebDriver 从 Javascript CSS 下拉菜单中选择选项在 IDE 中工作,而不是在代码中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8856884/

相关文章:

javascript - Webpack 缺少路径错误

javascript - 使用js在数组中打印json值

html - Firefox 在父 div 中偏移按钮

java - 使用静态变量和传递对象参数哪个更好?

java - Spring Security Rest Token Authentication - 过滤器不运行

java - 检查 Thymeleaf 模板中的 Null 属性

java - 在java正则表达式中,如何获取文件名的特定部分

javascript - 如何使元素文本区域自动为子字符串着色?

c# - JQUERY AJAX 多个级联dropdownlist select不加载问题

jquery - 在 Bootstrap 中停止移动设备上的静态固定滚动条行为