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

Selenium Webdriver - Click() method fails with IE driver

我在 IE11 中使用 IE 驱动程序, 对于某些元素 Click 方法只会 select 一个元素, 它不会执行 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

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

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

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

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