当前位置: 首页 > 面试题库 >

arguments [0] .click()对selenium中的select选项不起作用

罗心思
2023-03-14
问题内容

我正在使用selenium进行Web应用程序自动化。
我停留在一点上,我正在.ExecuteScript()执行一些操作,例如单击链接,并且为此使用:-

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", driver.FindElement(By.XPath("//a[contains(text(),'Login to the Demo')]")));

[ 注意 :对于正在使用的每个可单击元素,此方法,因为可单击元素可能被隐藏或在网页中不可见]但是此方法不起作用,因为
<select> <option>item<option> .. </select>

我正在使用下面的代码单击选择选项之一:

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", driver.FindElement(By.XPath("//select[@id='form_switcher']/option[5]")));

但没有任何反应,也没有给出任何错误/异常

- 编辑开始 -
但是如果我不使用它就ExecuteScript()可以正常工作:

driver.FindElement(By.XPath("//select[@id='form_switcher']/option[5]")).Click();

- 编辑结束 -

[ 注意 :我正在使用click来选择选项,以便它触发更改事件。]

因此,任何人都可以向我解释一下如何使用“ ((IJavaScriptExecutor)driver).ExecuteScript

谢谢”预先单击选择选项。


问题答案:

对于下拉菜单,您需要选择而不是单击。您应该返回该元素,然后执行element.SelectedIndex = 5;

如果您需要修改JavaScript以通过JavaScript而不是硒来获取元素,则可以利用document.evaluate位于的https://developer.mozilla.org/en-
US/docs/Web/API/document.evaluate?redirectlocale=zh-CN&redirectslug =
DOM%2Fdocument.evaluate

因此,您将返回一个代表您的select元素的元素,然后设置该SelectedIndex值。

我相信这是正确的…

((IJavaScriptExecutor)driver).ExecuteScript("var element = document.evaluate(\"//select[@id='form_switcher']\", document.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); element.SelectedIndex = 5;  return element.fireEvent('event specifics go here')");

http://www.java2s.com/Code/JavaScript/HTML/UsingthefireEventMethod.htm



 类似资料:
  • 问题内容: 我最近刚刚将我的Selenium IDE代码导出到了Selenium Web驱动程序。我发现很多在IDE中可用的命令要么无法运行,要么seleniumWeb驱动程序声称根本不支持。到目前为止,我一次只解决了一个问题,这并不理想。 目前,我正在研究为什么以前在Selenium IDE中无法使用Web驱动程序单击按钮的原因。我的浏览器是FF 13,我的操作系统是Ubuntu。 代码段 我以

  • 加拿大城市列表中卡尔加里的选择不起作用,按专业语法单击搜索按钮后,它将始终返回搜索结果中的所有城市。这是我的密码: 提前谢谢!

  • 这是我的选择选项: 这是我的jquery: 这是我的ajax调用控制器: 这对于ajax模型: 在我的第一个视图中,如果我选择该选项,它将显示基于所选选项的。 我把分页的ajax,比如果我点击分页,我所有的将消失,选择的选项将返回到选择活动。 伙计们,你们知道怎么解决这个问题吗?

  • 问题内容: 我需要使用ng-click,以便我可以传递三个参数并根据选择在本地json中进行设置。 我可以如下使用它ng-model和ng-change。 在这种情况下,我不能按如下方式传递三个参数。 问题答案: 最后,我找到了解决方案。 JS小提琴链接 HTML页面是 JavaScript是

  • 问题内容: 我试图在选择元素中选择一个值。我正在使用Selenium RC(Java)运行测试用例。我了解选择值的代码由以下代码给出: 我无法使用上面的代码选择所需的值。我认为这可能与选择源代码中的optgroup有关。我没有任何异常,该命令执行得很好,但是在页面上未选择所需的值。另外,我不能使用ID(而不是值),因为那里没有任何ID。这是选择器的源代码: 有什么方法可以使用Selenium选择所

  • 我正在使用espresso和Mockito为一个Android应用程序编写测试。在一些情况下,当我试图对视图或按钮执行单击操作时,单击操作在测试完成之前没有注册。 测试: log.i(标记,“用URL离开页面:”+URL);从不在logcat中写入。