如何使用量角器双击元素?

时间:2014-09-17 15:17:52

标签: javascript angularjs testing protractor

我想双击一个元素,但我找不到在文档API中执行此操作的方法。我发现一些可以追溯到2013年的参考文献,但我知道事情发生了很大的变化。

有人可以帮忙告诉我如何进行双击。

由于

4 个答案:

答案 0 :(得分:20)

始终记住protractorwebdriverjs的包装。

browser.actions()中提供了

doubleClick()

browser.actions().doubleClick(element(by.id('mybutton'))).perform();

答案 1 :(得分:0)

对于任何在2019年看到此内容的人来说,它仍然有效。只知道量角器选择器使用Locator对象查找元素。上面的解决方案使用webElement对象。因此,如果您使用量角器查找元素,则需要执行类似browser.actions().doubleClick(myElement.getWebElement()).perform();

的操作

答案 2 :(得分:0)

var el=element(by.id('id'));
browser.executeAsyncScript(function() {
    var evt=new MouseEvent('dblclick', {bubbles: true,cancelable: true,view: window});
    var callback = arguments[arguments.length - 1];
    arguments[0].addEventListener('dblclick',callback);
    arguments[0].dispatchEvent(evt);
},el).then(function(){...});

答案 3 :(得分:0)

await browser.actions().mouseMove(Element).doubleClick().perform();
  await browser.actions().doubleClick(Element.getWebElement()).perform();

当任何元素在屏幕上可见时,上面的 2 个代码都可以正常工作以双击它。 这里元素是

"let Element = element(by.xpath("locator"));"

下面的代码不起作用,因为 msg 显示的是

<块引用>

“失败:JavaScript 错误:arguments[0].dblclick 不是函数”

而在控制台中检查类似脚本时确实可以双击该项目:"$($x(element(by.xpath("locator")))).dblclick()".

如果能够找到使以下代码运行的确切 JavaScript 语法,将更新我的评论。

await browser.executeScript("arguments[0].dblclick();", 

Element.getWebElement());