量角器的mouseMove有什么替代品吗?我希望鼠标悬停在菜单上。但它似乎不受 geckodriver 的支持。
到目前为止,我已经尝试过 browser.executeScript('arguments[0].mouseMove()', element(by.className('menu')));
但是得到这个错误,Failed: TypeError: arguments[0].mouseOver is not a function。
谢谢 :)
量角器的mouseMove有什么替代品吗?我希望鼠标悬停在菜单上。但它似乎不受 geckodriver 的支持。
到目前为止,我已经尝试过 browser.executeScript('arguments[0].mouseMove()', element(by.className('menu')));
但是得到这个错误,Failed: TypeError: arguments[0].mouseOver is not a function。
谢谢 :)
您的脚本中有两个错误用法。
首先,Protractor element()
api 返回一个 ElementFinder,它是 HTML Web Element 的包装器。但是arguments[0]
inarguments[0].mouseMove()
需要一个 HTML Web 元素。此规则适用于所有浏览器,不仅 Firefox 需要。
您需要调用getWebElement()
ElementFinder 来获取 Web 元素,如下所示。
其次,HTML Web Element没有mouseMove()
api,而是mousemove
event。
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')));