Транспортир mouseMove() не поддерживается для geckodriver firefox
Есть ли альтернатива для мышки транспортира? Я бы хотел, чтобы мышь зависла над меню. Но, похоже, он не поддерживается geckodriver.
До сих пор я пробовал, browser.executeScript('arguments[0].mouseMove()', element(by.className('menu'))));
Но получите эту ошибку, Failed: TypeError: arguments[0].mouseOver не является функцией.
Спасибо:)
2 ответа
Мне удалось это решить:) Спасибо за вашу помощь.
Вот что я нашел сработало,
browser.executeScript(
'return arguments[0].click();',
browser.driver.findElement(by.className('menu')));
В вашем скрипте есть две ошибки использования.
Во-первых, транспортир element()
api возвращает ElementFinder, который является оболочкой для HTML-элемента Web. Но arguments[0]
в arguments[0].mouseMove()
требуется HTML веб-элемент. Это правило распространяется на все браузеры, а не только на Firefox.
Вам нужно позвонить getWebElement()
на ElementFinder, чтобы получить веб-элемент, как показано ниже.
Во-вторых, HTML Web Element не имеет mouseMove()
апи, но mousemove
событие.
browser.executeScript(
// web element not has mouseMove() api,
// so below usage is wrong.
'return arguments[0].mouseMove();',
element(by.className('menu')).getWebElement()
);