Транспортир mouseMove () не поддерживается для geckodriver firefox - PullRequest
0 голосов
/ 15 октября 2018

Есть ли альтернатива для транспортира мышью?Я бы хотел, чтобы мышь зависла над меню.Но, похоже, он не поддерживается geckodriver.

Пока что я пробовал, browser.executeScript ('arguments [0] .mouseMove ()', element (by.className ('menu'))));

Но получите этоошибка, Ошибка: TypeError: arguments [0] .mouseOver не является функцией.

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Мне удалось это решить :) Спасибо за вашу помощь.

Вот что я нашел сработало,

browser.executeScript( 'return arguments[0].click();', browser.driver.findElement(by.className('menu')));

0 голосов
/ 15 октября 2018

В вашем скрипте есть две ошибки:

Во-первых, , Protractor element() api возвращает ElementFinder, который является оберткой для HTML-элемента HTML.Но для arguments[0] в arguments[0].mouseMove() требуется веб-элемент HTML.Это правило применяется ко всем браузерам, не только требуется для Firefox.

Вам нужно позвонить getWebElement() на ElementFinder, чтобы получить веб-элемент, как показано ниже.

Во-вторых , HTML Web Element не имеет mouseMove() API, но mousemove событие.

browser.executeScript(
    // web element not has mouseMove() api,
    // so below usage is wrong.
    'return arguments[0].mouseMove();', 
    element(by.className('menu')).getWebElement()
);
...