簡體   English   中英

如何使用量角器雙擊元素?

[英]How can I perform a double click on an element with Protractor?

我想雙擊一個元素,但在文檔 API 中找不到執行此操作的方法。 我找到了一些可追溯到 2013 年的參考資料,但我知道事情已經發生了很大變化。

有人可以幫助並告訴我如何執行雙擊。

謝謝

永遠記住, protractorwebdriverjs的包裝器。

doubleClick()browser.actions()可用:

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

對於在 2019 年看到這個的人來說,這仍然有效。 只知道Protractor 選擇器使用Locator 對象來查找元素。 上面的解決方案使用了 webElement 對象。 因此,如果您使用 Protractor 來查找元素,則需要執行諸如browser.actions().doubleClick(myElement.getWebElement()).perform();

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(){...});
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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM