好吧,所以我觉得这很容易,但我花了几个小时搜索并尝试不同的方法,但没有用。我需要告诉量角器只有在它出现时点击一个按钮。为了解决它基本上我的测试检查页面上是否存在某个值。页面可以处于两种状态之一,自动模式,其中包含我正在测试的值或设计模式,其中包含与此测试无关的其他值。如果它处于设计模式,我们首先需要点击自动模式,它会产生提示,询问我们是否确定要继续并切换到自动模式 - 此提示包含我需要检查的继续按钮并单击。如果页面已经处于自动模式,我不需要执行此检查,我可以继续验证天气是否存在我的值。基本上我试过这个:
if (continueButton.isDisplayed()) {
continueButton.click();
}
发生了什么我得到了“使用locator找不到元素:...”错误。我尝试了几种不同的方法,比如使用isElementPresent和一些预期的条件选项但是或多或少得到了相同的结果。如何实现这种情况,我的测试检查按钮是否存在并单击它,如果不存在则继续测试。
答案 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();
}
});