【发布时间】:2019-01-11 14:05:57
【问题描述】:
我正在使用 Selenium / Java,并且在触发事件的下拉框上有一个有趣的问题...我不能使用 Select,因为下拉列表使用的是有组织的列表,而不是选择和选项(当盒子已关闭):
<section id="..." class="ember-view">
<ol id="...">
<li id="...">
我成功点击下拉框:element.click();
下拉框打开!但是当下一行执行时它会再次关闭(这只是一个System.out.println("...");)。
我很困惑。我试过了
JavascriptExecutor jse = (JavascriptExecutor)driver
jse.executeScript("$(arguments[0]).change()", element);
和
jse.executeScript("$(arguments[0]).focus()", element);
甚至
jse.executeScript("$(arguments[0]).blur()", element);
在我点击下拉框之前和之后,但那个小傻瓜不会一直打开!当我将参数的值打印到控制台System.out.println(jse.executeScript("$(arguments[0])); 时,参数为空...我不确定这是什么意思。
【问题讨论】:
-
手动也会发生同样的行为吗?如果您将鼠标悬停在它上面,它会保持打开状态吗?为什么不用JS本身来点击呢?
-
没有。手动单击它并保持打开状态。我不能在自动化中将鼠标悬停在它上面,因为一旦执行下一行,菜单就会消失。执行 JS 单击具有相同的效果,与使用 Actions 类并移动到元素,然后执行操作一样。
-
你能作弊并尝试使用 sendKeys 到下拉元素吗?
标签: javascript java selenium webdriver automated-tests