通过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。



