【问题标题】:Protractor writing a cleaner test cases without using browser.sleep量角器在不使用 browser.sleep 的情况下编写更干净的测试用例
【发布时间】:2016-01-30 17:53:39
【问题描述】:

我是量角器和茉莉花的新手,我使用了很多 browser.sleep 来让我的测试用例工作

it('Procedure tab-', function() {

        element(by.linkText('Medical History')).click();
        browser.sleep(500)
        element(by.linkText('Personal History')).click();
        browser.sleep(200)
        element(by.linkText('Procedure')).click();
        browser.sleep(500)
        element(by.css('[data-ng-show="ptab.index  === 1"] > [profile="profile"] > #medicalhistory > .card > [header="header"] > .card-header-bg > .title-header > .row > [ui-sref=".procedure.new"] > [data-ng-hide="important"]')).click();
        browser.sleep(500)
        $('label[for="dis4Appendicitis"]').click();
        browser.sleep(2000)
    })

在不使用 browser.sleep 的情况下编写测试用例还有什么更有效的方法......我一直在使用 sleeps,因为互联网连接速度较慢等......

感谢任何帮助

【问题讨论】:

    标签: javascript angularjs selenium selenium-webdriver protractor


    【解决方案1】:

    执行任何测试的有效方法是使用implicitexplicit 等待。可以在 conf.js 文件中添加隐式等待,以便量角器在测试执行的一开始就将其考虑在内。这是一个例子-

    browser.manage().timeouts().implicitlyWait(10000); //Wait for 10 seconds before failing particular actions/operations
    

    使用wait() 函数结合ExpectedConditions 可以实现显式等待。

    这有效地替换了browser.sleep() 方法 检查指定的预期条件。

    这里是如何使用它-

    var EC = protractor.ExpectedConditions;
    var elem = element(by.css(LOCATOR));
    browser.wait(EC.visibilityOf(elem), 10000); //Wait for 10 seconds before failing the step
    

    希望对你有帮助。

    【讨论】:

    • 谢谢 Girish 这有帮助......我应该如何等待 api 调用的响应......隐式调用将失败,因为尚未收到响应
    • @AmoghAngadi api 调用是否会更改您的网页 UI 中的任何内容?如果是,那么使用答案中提到的链接中可用的各种预期条件,明确等待该元素出现或更改可能会有所帮助。如果这不能解决您的问题,请使用 api 调用详细信息更新您的问题。谢谢
    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    相关资源
    最近更新 更多