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')));
量角器的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')));