gpt4 book ai didi

javascript - 如何在 Protractor 中创建元素存在或不存在的条件

转载 作者:行者123 更新时间:2023-12-03 21:35:37 25 4
gpt4 key购买 nike

我正在使用 Protractor JS。该网站是用 Angular JS 编写的。

所以我有一个拨动开关。我注意到切换开关中的值从 true 变为 false 并且当您关闭或打开它时,从 false 变为 true。

我正在尝试创建一个条件,当 Protractor 访问我的页面时,当它看到切换开关“关闭”时,会将其打开“打开”。如果切换开关已经“打开”,它将首先将其“关闭”,然后再次“打开”。

我想出了这段代码,但由于某种原因它不起作用:

 if( expect(element(By.id('toggle-switch')).element(By.css('[value="false"]')).isDisplayed()) ) {
element(By.id('toggle-switch')).click();
console.log('in the if')
}

else{
element(By.id('toggle-switch')).click();
browser.sleep(3000);
element(By.id('toggle-switch')).click();
console.log('in the else')
}

此代码似乎仅适用于 if 语句。由于某种原因,它永远不会去其他地方。这是我收到的错误:

NoSuchElementError:使用定位器找不到元素:By.cssSelector("[value=\"false\"]")

然后我尝试了

.isPresent() 而不是 .isDisplayed()我不再收到上述错误,但由于某种原因,当使用 .isPresent() 时,它总是转到 if 语句并且只运行该语句,而从不运行 else 语句。没有显示错误。

如果有更好的方法请告诉我。这似乎非常有限,无法在此框架中创造适当的条件。

最佳答案

请记住,isDisplayed() 返回一个 promise ,您可以尝试使用:

element(anyFinder).isDisplayed().then(function(result) {
if ( result ) {
//Whatever if it is true (displayed)
} else {
//Whatever if it is false (not displayed)
}
});

关于javascript - 如何在 Protractor 中创建元素存在或不存在的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com