我有以下 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();
我想使用带有 WebDriver 的 JavaScript 来单击按钮。我该怎么做?
原文由 Ripon Al Wasim 发布,翻译遵循 CC BY-SA 4.0 许可协议
通过 JavaScript 执行点击有一些您应该注意的行为。例如,如果绑定到元素的
onclick
事件的代码调用window.alert()
,您可能会发现您的 Selenium 代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用JavascriptExecutor
类来执行此操作。但是,我的解决方案与其他建议的解决方案不同,因为您仍然可以使用 WebDriver 方法来定位元素。您还应注意,最好使用
WebElement
接口的click()
方法,但在实例化驱动程序之前 禁用本机事件。这将实现相同的目标(具有相同的潜在限制),但不会强迫您编写和维护自己的 JavaScript。