【问题标题】:How to wait in protractor till the element is enabled如何在量角器中等待元素启用
【发布时间】:2016-11-05 09:22:58
【问题描述】:

尝试单击按钮时量角器失败。最初该按钮将处于禁用状态(一段时间后它将被启用)并且量角器认为该按钮已准备好并单击该按钮并失败。

所以我希望量角器脚本等到按钮启用。我在下面尝试过,但没有奏效。有人可以发布完整的代码以等待元素被启用吗?

expect(browser.wait(function(){return browser.driver.isElementPresent(by.id('paynow-info-btn'))}, 10000));

【问题讨论】:

    标签: javascript selenium testing selenium-webdriver protractor


    【解决方案1】:

    有一个非常合适的预期条件 - elementToBeClickable - 它会等待一个元素可见并启用

    var elm = element(by.id('paynow-info-btn'));
    var EC = protractor.ExpectedConditions;
    
    browser.wait(EC.elementToBeClickable(elm), 5000);
    elm.click();
    

    【讨论】:

    • 现在工作完美。感谢您的回答。
    • 今天我的问题是:如何最终确定elemelm.click() 之前是否可点击?我在看这里,但不清楚protractortest.org/#/…
    • @bob.mazzo 好吧,您实际上可以将browser.wait() 保持原样 - 如果该元素不可见且未启用,它将引发超时错误。或者,您可以有 2 个期望:一个使用 isEnabled(),另一个 - 使用 isDisplayed()..期望它们是真的..
    • @bob.mazzo 当然,没问题。感谢您提出有趣的问题!
    • @Nugenrules 感谢您的回复。从那以后,我们开始在单击按钮之前简单地检查按钮是否存在,这似乎有效,但我还有另一个测试用例要编写,并将在下一次有机会时尝试!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多