在Protractor 5.4.2中,我使用mouseMove函数来模拟在元素上的悬停。我需要它使其他几个元素出现。我用过:
browser.actions().mouseMove(element).perform();
但是对于Protractor 6.0.0,以下操作不起作用(即,没有期望的悬停模拟结果):
await browser.actions().move(element).perform();
我发现这次对话有助于对新的API调用有一个一般性的了解,但是其中没有提供的解决方案在我的项目中证明有效:https://github.com/angular/protractor/issues/5185
我查阅了本文档,以试图更好地理解移动功能在6.0.0中的工作方式:https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/input_exports_Actions.html
我的样品测试:
it('Hover mouse over', async() => {
myItem = 'span.dashboard__item'
await browser.actions().move({origin: myItem, duration:2000}).perform();
})
在我的代码中,我还尝试了以下选项:
await browser.actions().move({origin: element, x:2, y:3, duration:
2000}).click().perform()
await browser.actions({bridge: true}).move({origin: element, x: 5, y: 5,
duration: 2000}).perform();
await browser.actions().move({origin: element, duration:2000}).perform();
但无济于事。上面给出: 严重错误:无效的标记压缩接近堆限制分配失败-JavaScript堆内存不足
此错误与项目大小无关,因为它不大。
我需要一种方法来模拟鼠标悬停在某个元素上,因为只有该元素上的按钮才可以交互。在Protractor 6.0.0中执行此操作的方式是什么?有什么提示吗?
答案 0 :(得分:0)
我可以建议使用本机js函数与浏览器进行交互,例如鼠标移动,单击,拖放。 这是由于firefox API不支持browser.actions引起的问题,或者是在最新版本的protractor ex中会发现的任何其他类型的问题。 6.0
使用https://github.com/IgorSasovets/protractor-firefox-support 您可以创建包装器并扩展功能以实现您的目标。