【发布时间】:2014-03-11 23:08:46
【问题描述】:
每当我在 IE(使用 InternetExplorerDriver)中运行 WebDriver 测试时,需要单击网页元素时,InternetExplorerDriver 就会接管我的鼠标。
当我在 Chrome 或 Firefox 中运行测试时,不会发生这种情况。有没有办法防止 IE 测试控制鼠标指针?
导致鼠标指针“被盗”的示例代码:
public void clickButtonNamed(String buttonName) {
driver.findElement(By.xpath("//div[contains(text(),'" + buttonName + "')]")).click();
}
public void dragAndDropElement(WebElement source, WebElement target) throws InterruptedException {
action.dragAndDrop(source,target).build().perform();
}
//IE Driver initialization
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);
WebDriver driver = new InternetExplorerDriver(caps);
【问题讨论】:
-
IEDriver 初始化添加。
-
@Jim 实际上,我确实读过那篇文章和你的几篇文章。 IEDriver 如此不可预测且不一致,这是我发现的唯一解决方法(需要窗口焦点),可以让它以任何一致性单击元素。不幸的是,这样做会接管鼠标控制(chromedriver 或 firefoxdriver 都不会发生这种情况)。
-
...或者这只是 IE 本身(而不是驱动程序)的固有问题,无论哪种方式都可能令人沮丧。
-
您可以随时关闭本地事件,正如上面链接的第二篇博文所建议的那样。底线是 IE 不提供任何高保真方式来模拟用户输入。驱动程序受操作系统和浏览器允许的限制。如果您有其他模拟用户输入的方法,我们将不胜感激地接受拉取请求。
标签: java internet-explorer selenium webdriver mouse