【问题标题】:Is there a mouseOver workaround for IE8 and Firefox in WebDriver?WebDriver 中是否有针对 IE8 和 Firefox 的 mouseOver 解决方法?
【发布时间】:2012-02-15 23:52:53
【问题描述】:

WebDriver 的moveToElement 在 Firefox 和 IE 中不起作用。它在 Chrome 浏览器中运行良好。

这是我正在使用的代码:

Actions builder = new Actions(driver);       
builder.moveToElement(driver.findElement(By.xpath(Loader.OR.getProperty(object))))
                            .moveToElement(driver.findElement(By.xpath(data)))
                            .click();
Action selectMultiple = builder.build();
selectMultiple.perform();

同样,适用于 Chrome,但不适用于 IE 或 Firefox。

【问题讨论】:

    标签: java selenium webdriver selenium-webdriver


    【解决方案1】:

    您可以使用 Javacript,但不幸的是,IE 和 Firefox/Chrome 的脚本不同:

    if (_browserName == BrowserName.InternetExplorer)
       {
            script = "var evt = document.createEventObject();" +
                     "arguments[0].fireEvent('onmouseover', evt);";
       }
    else
      {
          script = "var evt = document.createEvent('MouseEvents');" +
                   "evt.initMouseEvent('mouseover',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" +
                   "arguments[0].dispatchEvent(evt);";
     }
    ((IJavaScriptExecutor)QuestWebDriver.CurrentDriver).ExecuteScript(script, element); 
    

    对于 IE,这些 selenium 本机方法对我来说很好:

    Actions action = new Actions(driver);
    action.MoveToElement(element).Perform();
    

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 2011-09-08
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 2021-08-16
      相关资源
      最近更新 更多