量角器+双击一个元素?

时间:2017-04-06 10:55:09

标签: protractor

我想在量角器中加倍元素;我使用如下,但它不是双击,而是单击。

browser.actions().doubleClick(element(by.xpath("//*[@id='optionsTaggingList']/div[1]/div[1]/div[1]/table/tbody/tr/td[1]")).getAttribute(1)).perform()

我有什么遗失的吗?

4 个答案:

答案 0 :(得分:1)

只需使用:

browser.actions().doubleClick(element(by.xpath("//*[@id='optionsTaggingList']/div[1]/div[1]/div[1]/table/tbody/tr/td[1]"))).perform();

但是你应该使用一个更简单的选择器,不会那么久。

答案 1 :(得分:1)

以下代码有效:

var ele = element(by.xpath("//*[@id='optionsTaggingList']//td[1]"))   
browser.actions().click(ele).click(ele).perform();

答案 2 :(得分:0)

尝试多种方法双击元素后,我终于想出了一个解决方案:

async performDoubleClick(elemetToBeClicked: ElementFinder) {
            await browser.actions().mouseMove(elemetToBeClicked).mouseMove(elemetToBeClicked)
                .mouseUp().mouseDown().click().mouseDown().mouseUp().click().doubleClick().perform();
            return;
        }

您还可以检查以下各项是否对您有用:

async performDoubleClick(elemetToBeClicked: ElementFinder) {
        await browser.actions().mouseMove(elemetToBeClicked).mouseMove(elemetToBeClicked).doubleClick().perform();
    }

需要将其他事件串在一起,因为当您双击时,这些事件也将以相同的顺序被调用。您可以通过https://unixpapa.com/js/testmouse.html或任何其他鼠标事件检查器进行验证。

答案 3 :(得分:0)

我尝试了以上所有方法,但没有帮助,请尝试

请使用sleep(1000) 等待browser.actions()。click(ele.getWebElement())。perform(); 等待browser.actions()。mouseMove(ele).mouseMove(ele).doubleClick()。perform();