【问题标题】:Selenium IE Webdriver Hovering Over Element flickeringSelenium IE Webdriver 悬停在元素上闪烁
【发布时间】:2016-05-20 01:50:29
【问题描述】:

我的代码在 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); 

一旦触发移动到元素行的动作,它似乎会通过循环或鼠标一直在链接文本“abc”上移动。由于它闪烁它无法移动到下一个元素。我正在使用 thread.sleep,因为在将鼠标悬停到元素后通常会显示其他项目,通常需要大约 1 秒才能出现。
我检查了以下link,声明

发生这种情况的普遍理论是 IE 正在进行命中测试 在其事件循环期间发生某种事件,这导致它响应 物理光标在窗口内时的物理鼠标位置 界限。

这是否意味着悬停在 IE 中不起作用。闪退有什么办法吗?

【问题讨论】:

标签: javascript jquery html css selenium


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 非常感谢闪烁停止,但现在我面临的问题不是悬停在所有元素上。我的代码基本上是悬停到元素“abc”,然后悬停到元素“xyz”,然后悬停到元素“EFG”并单击它。现在代码只在代码失败后将鼠标悬停到“abc”。你有什么解决办法吗?我看了seleniumeasy.com/selenium-tutorials/…,但这个解决方案不起作用。示例站点是 Amazon.com - 鼠标悬停按部门购物,然后回显然后亚马逊回显。提前致谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2013-03-03
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多