【问题标题】:A way of clicking on hidden elements in protractor end to end tests在量角器端到端测试中单击隐藏元素的一种方法
【发布时间】:2023-03-26 19:30:02
【问题描述】:

有没有办法点击子菜单中的隐藏值。我希望能够做类似的事情

driver.findElement(protractor.By.xpath('/html/body/div/div/a')).mouseover.then(function() {
    ptor.findElement(protractor.By.className('name').getText().then(function(result) {
        expect(result).toBe('Me');
    });
});

当菜单项不可见时,或者我们目前受限于此。如果这不可能,目前是否有解决此问题的方法。

【问题讨论】:

    标签: angularjs protractor


    【解决方案1】:

    好吧,经过漫长而痛苦的搜索,试图找到这个问题的答案,我终于找到了答案,试图回答一个不同的问题。

    我找到的大多数文档都解释说,我们必须以 WebElement 的形式使用 Actions,然后将其转换为 Javascript,并通过单击操作将数组形式的脚本元素传递给它。

    同样的种类也在这里,但有一些修改。

    describe('', function() {
        var ptor = protractor.getInstance();
        var driver = ptor.driver;
    
        it('', function() {
            var hiddenElement = driver.findElement(protractor.By.yourchosenlocator(''));
            driver.executeScript("arguments[0].click()", hiddenElement).then(function() {
                expect(whatever).toMatch(whatever);
            });
        }, 30000);
    });
    

    如您所见,没有使用 webelement,也不需要强制转换。

    以下是帮助我寻找答案的资源

    How do you click on an element which is hidden using Selenium Webdriver?

    SELENIUM WEBDRIVER – HOW TO CLICK ON A HIDDEN LINK OR MENU

    Selenium WebDriver - hidden select and anchor [duplicate]

    【讨论】:

    • 我尝试了很多变体,但无法让它发挥作用。我正在做driver.executeScript("arguments[0].click()", element( by.css( '.logout' ) ) ),结果是UnknownError: {"errorMessage":"'undefined' is not a function (evaluating 'arguments[0].click()')"
    • 你用的是什么版本的量角器?较新的版本可能要求您使用 ptor.executeScript 或 protractor.executeScript。你能把你的代码贴出来让我看到吗,我可以从那里帮助你
    • 我可以在文档中的browser.executeScript 上找到它。 github.com/angular/protractor/blob/master/docs/…。我对何时使用ptordriverbrowser 感到有些困惑......那里有很多例子似乎有点混合在一起。
    • 这是因为protractor的更新版本。不过我相信它现在已经相当稳定了,所以随着它的成熟,语法应该不会有太大的偏差。
    【解决方案2】:

    只是为了补充接受的答案,下面的代码对我有用。

    进口声明:

    import { browser, by, element } from 'protractor';
    

    代码:

    const hiddenElement = element(by.id('hiddenIcon'));
    browser.driver.executeScript('arguments[0].click();', hiddenElement.getWebElement());
    

    只需将 hiddenIcon 更改为您的元素的 id。

    而不是使用

    var ptor = protractor.getInstance(); var driver = ptor.driver;

    我们也可以使用

    浏览器驱动程序

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多