Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 中断browser.actions().mouseMove在量角器中_Javascript_Selenium_Protractor_E2e Testing - Fatal编程技术网

Javascript 中断browser.actions().mouseMove在量角器中

Javascript 中断browser.actions().mouseMove在量角器中,javascript,selenium,protractor,e2e-testing,Javascript,Selenium,Protractor,E2e Testing,我需要使用actions.mouseMove()函数将鼠标悬停在反应式下拉元素上。这样做并单击elemen之后,反应性下拉列表仍然存在,因此我现在需要找到某种方法将鼠标从悬停框中移开。为此,我在单击链接后包含一个返回浏览器。actions().mouseDown().perform()。这是我的全部功能 this.changeCurrentClient = function() { var profile = $('[id="hdr-profile-wrapper"]'); va

我需要使用actions.mouseMove()函数将鼠标悬停在反应式下拉元素上。这样做并单击elemen之后,反应性下拉列表仍然存在,因此我现在需要找到某种方法将鼠标从悬停框中移开。为此,我在单击链接后包含一个返回浏览器。actions().mouseDown().perform()。这是我的全部功能

this.changeCurrentClient = function() {
    var profile = $('[id="hdr-profile-wrapper"]');
    var changeClient = element(by.buttonText('Change Client'));
    browser.actions().mouseMove(profile).perform();
    changeClient.click();
    return browser.actions().mouseDown().perform();
};
这很好,但是问题是,当我在网格上运行它时,它有时不能正确地执行moveDown()函数以跳出悬停菜单。我认为这是因为它在网格上运行得稍慢,而DOM的加载时间稍长。有没有更好的方法来打破这种局面,而不是提神醒脑或苦苦等待


在执行mouseDown()之前,我尝试隐式地等待悬停菜单之外的页面上的另一个元素,但是这似乎是第一个操作。perform()几乎将您隔离到悬停菜单,因此无法找到悬停菜单之外的其他元素。刷新真的是做到这一点的唯一方法吗?

我看到使用actions()后出现的问题,甚至蔓延到第二个窗口句柄(即browser.switchTo().window(winHandles[1]);)。似乎应该有一种方法来停止该操作,尤其是在以.perform()结尾时