Транспортир 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()
);
Другие вопросы по тегам