量角器仅在存在时单击元素

时间:2016-03-23 20:05:51

标签: angularjs protractor

好吧,所以我觉得这很容易,但我花了几个小时搜索并尝试不同的方法,但没有用。我需要告诉量角器只有在它出现时点击一个按钮。为了解决它基本上我的测试检查页面上是否存在某个值。页面可以处于两种状态之一,自动模式,其中包含我正在测试的值或设计模式,其中包含与此测试无关的其他值。如果它处于设计模式,我们首先需要点击自动模式,它会产生提示,询问我们是否确定要继续并切换到自动模式 - 此提示包含我需要检查的继续按钮并单击。如果页面已经处于自动模式,我不需要执行此检查,我可以继续验证天气是否存在我的值。基本上我试过这个:

if (continueButton.isDisplayed()) {
continueButton.click(); 
} 

发生了什么我得到了“使用locator找不到元素:...”错误。我尝试了几种不同的方法,比如使用isElementPresent和一些预期的条件选项但是或多或少得到了相同的结果。如何实现这种情况,我的测试检查按钮是否存在并单击它,如果不存在则继续测试。

2 个答案:

答案 0 :(得分:1)

browser.wait()elementToBeClickable Expected Condition正是可能有所帮助的:

var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(continueButton), 5000);

continueButton.click();

答案 1 :(得分:0)

您可以通过使用承诺来实现这一目标。

    continueButton.isDisplayed().then(function (isDisplayed) {
        if(isDisplayed){
        continueButton.click();
        }
    });