2016-08-05 56 views
12

我面臨與Actions類驅動程序的問題。我有這段代碼行動類不與壁虎驅動程序工作

Actions act= new Actions(d1); 
act.moveToElement(d1.findElement(By.xpath("path of the element")).build().perform(); 

此前,當我使用Selenium-Java 2.43.0時,此命令工作正常。但我已升級到3.0.0-beta2,通過gecko驅動程序開始訪問firefox driver

在上述指定的命令我的測試失敗。我得到下面的異常

org.openqa.selenium.UnsupportedCommandException:POST /會話/ 21dfc828-a382-4622-8c61-89bc48e29744 /通過MoveTo不匹配 知命令(警告:服務器沒有提供任何堆棧跟蹤信息 )命令持續時間或超時:4毫秒

請幫

+0

有記錄在此硒公開問題的問題。我們必須等待修復。 https://github.com/SeleniumHQ/selenium/issues/2285。這是問題。可能是我們不得不等待這個。 –

+0

截至2017年3月18日,在這個問題上,它看起來像「現在在geckodriver 0.15和Selenium 3.x中實現」,並且問題已關閉。但我仍然有一些相當大的問題與鼠標懸停仍然:/ –

回答

5

臨時,可怕的,令人沮喪的答案,直到他們解決這個問題是恢復到硒和Firefox的工作版本。 Selenium 2.53.0與Firefox 45.0.2仍然在工作: https://ftp.mozilla.org/pub/firefox/releases/45.0.2/

我很遺憾沒有測試最新版本,但同時它沒有任何Firefox測試運行。沒有針對Firefox運行幾個月結束是無法接受。

4

這是一個版本問題。 Selenium 3尚未支持Actions類驅動程序。您將不得不下載到較低版本。版本2.53.1工作正常,我與Firefox

+1

任何消息呢?這是否應該在某個時候實施,希望很快? – nostradamus

0

以下爲我工作在Firefox 52.3.0 ESR和硒3.5.1

public void mouseRightClickAndSelectOption(By locator, By contextMenuOption){ 
    clickElement(locator); 
    String script = "var evt = document.createEvent('MouseEvents');" + "evt.initMouseEvent('contextmenu',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" + "arguments[0].dispatchEvent(evt);"; 

    try { 
     ((JavascriptExecutor) driver).executeScript(script, getElement(locator)); 
    } catch (Exception ignored) { 
    } 
    clickElement(contextMenuOption); 
} 


public WebElement getElement(By locator) { 
    fluentWait(locator); 
    return driver.findElement(locator); 
} 
相關問題