1

У меня есть сценарий, где мне нужно навести курсор на ссылку меню и щелкнуть по выпадающим подменю. Код, который я использую ниже:Selenium Actions.movetoElement - org.openqa.selenium.UnsupportedCommandException

public void changeLanguageTest() throws InterruptedException 
    { 
     WebElement LanguageMenu = driver.findElement(By.cssSelector(".change-language>button")); 
     action.moveToElement(LanguageMenu); 
     WebElement mongolianLang = driver.findElement(By.cssSelector(".change-language>ol>li:nth-child(3)>a")); 
     action.moveToElement(mongolianLang).click().build().perform(); 
     Thread.sleep(3000L); 
    } 

Но когда я запускаю этот код, он терпит неудачу с сообщением об ошибке: -

org.openqa.selenium.UnsupportedCommandException: POST /сессия/3077f893-d9ab-487d-b09f-c5bcd135ea31/MoveTo не совпадать с известной команде

Я попытался нижеуказанному код тоже, но никакого успеха и та же ошибка не произошло.

BaseClass.action.moveToElement(LanguageMenu).moveToElement(mongolianLang).click().build().perform(); 

Я использую webdriver v2.53 и запустить его на FF v47.0.1.

+0

Какую версию 'geckodriver' вы используете? –

ответ

2

Как bug logged heregeckodriver еще не реализует actions. Действия, которые мы будем реализовывать, - это те, которые определены сейчас в W3C WebDriver standard, а не в Selenium.

Selenium сказал, что они предоставят прокладку Selenium-to-W3C-WebDriver для действий, но это может занять некоторое время, чтобы произвести после того, как мы сделали нашу реализацию. Реализация в geckodriver/Marionette еще не началась.


Как mentioned here from v0.12.0 of geckodriver, Реализовано маршрутизация для new actions API, но это тоже еще не в полной мере реализованы в марионеток


Вы должны обновить geckodriver.

+1

Спасибо, Saurabh за полезную информацию. –