量角器在不使用browser.sleep的情况下编写更干净的测试用例

时间:2016-01-27 07:41:36

标签: javascript angularjs selenium selenium-webdriver protractor

我是量角器和茉莉花的新手,我使用了很多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的情况下编写测试用例的更有效方法........由于互联网连接速度较慢等原因,我一直在使用睡眠....

感谢任何帮助

1 个答案:

答案 0 :(得分:3)

执行任何测试的有效方法是使用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

希望它有所帮助。