2012-02-15 27 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(); 
相關問題