我想双击一个元素,但我找不到在文档API中执行此操作的方法。我发现一些可以追溯到2013年的参考文献,但我知道事情发生了很大的变化。
有人可以帮忙告诉我如何进行双击。
由于
答案 0 :(得分:20)
始终记住protractor
是webdriverjs的包装。
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());