量角器6.0.0中的功能“移动”不起作用

时间:2019-08-14 11:22:08

标签: javascript protractor

在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中执行此操作的方式是什么?有什么提示吗?

1 个答案:

答案 0 :(得分:0)

我可以建议使用本机js函数与浏览器进行交互,例如鼠标移动,单击,拖放。 这是由于firefox API不支持browser.actions引起的问题,或者是在最新版本的protractor ex中会发现的任何其他类型的问题。 6.0

使用https://github.com/IgorSasovets/protractor-firefox-support 您可以创建包装器并扩展功能以实现您的目标。