2012-02-15 28 views
0

WebDriver的moveToElement不适用于Firefox和IE。它在Chrome浏览器中运行得很好。WebDriver中是否有IE8和Firefox的mouseOver解决方法?

这里是我使用的代码:

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。

回答

0

可以使用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这些硒本地方法为我工作得很好:

Actions action = new Actions(driver); 
action.MoveToElement(element).Perform(); 
相关问题