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

如何使用JavaScript单击Selenium WebDriver中的元素

濮丰
2023-03-14
问题内容

我有以下HTML:

<button name="btnG" class="gbqfb" aria-label="Google Search" id="gbqfb"><span class="gbqfi"></span></button>

我下面的单击“ Google搜索”按钮的代码在WebDriver中使用Java时效果很好。

driver.findElement(By.id("gbqfb")).click();

我想将JavaScript与WebDriver一起使用以单击按钮。我该怎么做?


问题答案:

通过JavaScript执行点击具有一些您应该注意的行为。例如,如果绑定到onclick元素事件的代码调用window.alert(),则可能会发现Selenium代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用JavascriptExecutor该类来执行此操作。我的解决方案与其他建议的解决方案不同,但是,您仍然可以使用WebDriver方法来定位元素。

// Assume driver is a valid WebDriver instance that
// has been properly instantiated elsewhere.
WebElement element = driver.findElement(By.id("gbqfd"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

您还应该注意,使用接口的click()方法可能会更好WebElement,但是在实例化驱动程序之前禁用本机事件。这将实现相同的目标(具有相同的潜在限制),但不会迫使您编写和维护自己的JavaScript。



 类似资料:
  • 我有以下HTML: 我下面单击“谷歌搜索”按钮的代码在WebDriver中使用Java时运行良好。 我想用JavaScript和WebDriver来点击按钮。我该怎么做?

  • 问题内容: 我想知道如何启用对伪元素的单击(我链接到下面的JSfiddle上div的橙色部分)。我读过,由于伪元素不在DOM中,因此您需要对此进行破解。不幸的是,我找不到实际显示有效代码的现有Stackoverflow问答。 HTML: CSS: 问题答案: 一种解决方法是将a动态添加到该项目并为其分配click方法。 CSS

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我的页面上有两个元素(两个“取消”元素)。 如何单击第二个元素?显然,我无法获得ID,因为它是在每次访问时随机生成的。我可以使用什么? 问题答案: 1.使用FindElements方法,该方法使用给定的机制查找当前上下文内的所有IWebElement。(在这种情况下,您始终需要知道要查找的元素的索引。) 2.如果这些取消按钮位于不同的部分,则可以通过非ExtJS id属性进行标识。 3

  • 问题内容: 在IE中,我只能从JavaScript调用element.click()-如何在Firefox中完成相同的任务?理想情况下,我希望有一些跨浏览器同样可以正常工作的JavaScript,但是如果需要,我将为此使用不同的逐浏览器JavaScript。 问题答案: 该文件说:“ 该 _createEvent_方法已被弃用。使用事件构造来代替。 ” 因此,您应该改用以下方法: 并在这样的元素上

  • 我有一个线性布局的列表。我想点击一个应用程序,我可以在页面上滚动,但不能点击一个应用程序。 我没有得到任何方法点击项目内从gridview。 有人能帮我解决问题吗?