if语句用于量角器搜索屏幕上显示的元素

时间:2016-09-09 15:21:08

标签: protractor

我正在使用以下代码来验证linkText是否存在,然后执行其他操作,但每次它都会给我错误LinkText不存在 以下是代码

if(expect(element(By.linkText('ramit')).isDisplayed()))
{
    b();
}
else
{
    a();
}

2 个答案:

答案 0 :(得分:2)

您不希望这样做,expect用于测试断言。您需要解决承诺并对返回的值执行条件语句。例如:

element(By.linkText('ramit')).isDisplayed().then(function(val) {
    if(val === true) {
      //code
    }
    else {
      //code
    }
});

并且您提到错误是LinkText不存在,如果您的站点是Angular,它应该适当地同步并等待任何请求在执行测试之前完成。如果没有,我建议你看看Expected Conditions

答案 1 :(得分:0)

我们可以使用 protractor.ExpectedConditions.visibilityOf()方法检查UI或Not上是否存在元素或链接或文本。用于检查元素可见性的代码片段如下:

 var EC=protractor.ExpectedConditions;
 var linkText=element(By.linkText('ramit'));
 EC.visibilityOf(linkText).call().then(function(isLinkTextPresent){
            if(isLinkTextPresent){
                     //do the logic if link text is present
            }else{
                  //do the logic if link text is not present
            }
    });