壁虎驱动程序Firefox不支持量角器的mouseMove()

时间:2018-10-14 23:20:13

标签: angularjs angular protractor e2e-testing angular-e2e

量角器的mouseMove是否有其他选择?我希望鼠标悬停在菜单上。但是geckodriver似乎不支持它。

到目前为止,我已经尝试过browser.executeScript('arguments [0] .mouseMove()',element(by.className('menu')));

但是出现此错误,失败:TypeError:arguments [0] .mouseOver不是一个函数。

谢谢:)

2 个答案:

答案 0 :(得分:0)

您的脚本中有两种错误用法。

首先,量角器element() api返回一个ElementFinder,它是HTML Web Element的包装。但是arguments[0]中的arguments[0].mouseMove()需要HTML Web元素。此规则不仅适用于Firefox,而且适用于所有浏览器。

您需要在ElementFinder上调用getWebElement()才能获得如下所示的Web元素。

其次,HTML Web元素没有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()
);

答案 1 :(得分:0)

我设法解决了问题:)感谢您的帮助。

这就是我发现的工作

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