geckodriver firefox 不支持 Protractor 的 mouseMove()

Protractor's mouseMove() unsupported for geckodriver firefox

量角器的mouseMove有没有替代品?我希望鼠标悬停在菜单上。但它似乎不受 geckodriver 的支持。

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

但是得到这个错误,失败:类型错误:arguments[0].mouseOver 不是一个函数。

谢谢:)

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

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

您需要在 ElementFinder 上调用 getWebElement() 以获取如下 Web 元素。

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

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

这是我发现的有效方法,

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