Selenium Webdriver - Click()方法因IE驱动程序而失败

时间:2016-09-08 07:00:49

标签: internet-explorer selenium selenium-webdriver automation selenium-iedriver

我正在使用IE11的IE驱动程序, 对于某些元素Click方法只会选择一个元素, 它不会做Click()的动作。 使用ChromeDriverFirefoxDriver相同的脚本工作正常。

我已将驱动程序功能设置如下

DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
caps.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false);
caps.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false);
caps.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);

我在以下链接中找到了一些解决方案,但仍面临同样的问题。

Selenium WebDriver Click issue in Internet Explorer

Selenium WebDriver on IE 9, on clicking, links are flashing as if some click event was not completely handled

Selenium 2.0b3 IE WebDriver, Click not firing

1 个答案:

答案 0 :(得分:2)

很难说为什么它不能在IE上点击,可能是它的设计问题。

如果你已经尝试了所有可能性,但没有成功,请尝试使用JavascriptExecutor作为替代解决方案,如下所示: -

((JavascriptExecutor)driver).executeScript("arguments[0].cli‌​ck()", yourElement);

注意: - JavaScript注入HTMLElement.click()不应在测试环境中使用。它违背了测试的目的。首先是因为它不会像真正的click (focus, blur, mousedown, mouseup...)那样生成所有事件,因为它不能保证真实用户可以与元素交互。但是要摆脱这个问题,你可以将它视为一种替代解决方案。