量角器测试涉及ng-show

时间:2017-02-01 20:48:38

标签: angularjs protractor

我有一个角度页面,根据radioButton的值显示或隐藏国家dropDownList。如果rb为真,则ddl被隐藏,如果ddl为假,则显示ddl。这是直接在ddl HTML中完成的,将以下属性添加到select标记:String

除了以下量角器测试外,所有工作都按预期进行:

ng-show="!vm.inscriptor.isLocalCountry"

正如预期的那样,当点击真值的单选按钮时,ddl会被隐藏,但是" isDisplayed" expect会抛出以下错误:

  

预计是假的。

我能想到的唯一原因是在单击完成处理之前正在执行expect语句。我尝试按以下方式重构测试:

it(testNumber++ + " ddl de países debería estar oculto", function () {
    pages.register.rbdLocalCountryTrue.click();
    expect(pages.register.ddlCountries.isPresent()).toBeTruthy();
    expect(pages.register.ddlCountries.isDisplayed()).toBeFalsy();
});

但我仍然会得到随意的结果。

如果我添加一个browser.sleep(5000),那么期望结果会正确显示,但我读过的所有地方都说browser.sleep是最后的手段。

还有其他方法告诉量角器等待点击完成处理吗?还有其他建议吗?

THX

1 个答案:

答案 0 :(得分:1)

您可以使用click()Click()之后隐藏元素。另外,你不需要将expect()it(testNumber++ + " ddl de países debería estar oculto", function () { pages.register.rbdLocalCountryTrue.click(); browser.wait(protractor.ExpectedConditions.invisibilityOf(pages.register.ddlCountries), 10000); expect(pages.register.ddlCountries.isPresent()).toBeTruthy(); expect(pages.register.ddlCountries.isDisplayed()).toBeFalsy(); }); 的承诺链接起来,因为量角器控制流为你做了

你可以有这样的东西

awk -F ',' 'BEGIN{IGNORECASE=1}{sub("-"$NF"$","",$1);print "str1="$1}' YourFile