Selenium IE Webdriver悬停在元素上闪烁

时间:2015-08-03 15:56:32

标签: javascript jquery html css selenium

我的代码在FF中运行得非常好但是如果我尝试使用IE它会闪烁 以下是我的代码

    WebElement mouseOver= driver.findElement(By.linkText("abc"));
//I'm finding element by linkText. Selenium find the linktext, Next im using Action class to perform the move. 
    Actions action = new Actions(driver);
    action.moveToElement(mouseOver).build().perform();
    Thread.sleep(1000); 

一旦动作移动到元素行是触发它似乎它通过循环或鼠标继续通过linkText" abc"。由于它闪烁,它无法移动到下一个元素。我使用thread.sleep,因为有其他项目在悬停到元素后会显示,通常需要大约1秒才能显示。
我检查了以下link,说明了

  

为什么会出现这种情况的流行理论是IE正在进行命中测试   在它的事件循环期间的某种形式,它导致它响应   物理光标在窗口内时的物理鼠标位置   界限。

这是否意味着悬停在IE中不起作用。有什么解决方案可以闪烁吗?

2 个答案:

答案 0 :(得分:2)

我在几个月前自动化IE测试脚本时遇到了同样的问题。 问题似乎是计算机鼠标指针试图在焦点设置为web元素时获得焦点。 解决问题的方法是将鼠标指针远离网页(在工具栏或任务栏上)。

您可以在开始执行之前手动执行此操作,也可以使用java robot以编程方式执行此操作。

Robot r = new Robot();
r.mouseMove(1,1);

答案 1 :(得分:1)

创建驱动程序时,您可以试试这个。这对我有用:

DesiredCapabilities returnCapabilities = DesiredCapabilities.internetExplorer();
returnCapabilities.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false);
WebDriver driver = new InternetExplorerDriver(returnCapabilities);