gpt4 book ai didi

javascript - assertExists 与 if-else 语句

转载 作者:行者123 更新时间:2023-11-28 21:28:24 24 4
gpt4 key购买 nike

我使用这段代码:

var x = require('casper').selectXPath;
...
casper.waitForSelector(x("//a[contains(@id,'cell_13_1')]"), function() {
this.test.assertExists(x("//a[contains(@id,'cell_13_1')]"), 'Clickable');
this.click(x("//a[contains(@id,'cell_13_1')]"));
});

我正在尝试将 if-elseassertExists 结合使用,以在第一个元素不存在时单击另一个元素:

casper.waitForSelector(x("//a[contains(@id,'cell_13_1')]"), function() {          
if(this.test.assertExists(x("//a[contains(@id,'cell_13_1')]")==="PASS"){
this.click(x("//a[contains(@id,'cell_11_1')]"));}
else{
this.click(x("//a[contains(@id,'cell_22_1')]"));
}
});

但这似乎行不通。如何正确地做到这一点?

最佳答案

这正是 casper.exists() 的用途。您还可以显式地通过或失败一些事情:

casper.waitForSelector(x("//a[contains(@id,'cell_13_1')]"), function() {          
if(this.exists(x("//a[contains(@id,'cell_13_1')]")){
this.test.pass("Clickable");
this.click(x("//a[contains(@id,'cell_11_1')]"));
} else {
this.test.fail("Clickable");
//this.click(x("//a[contains(@id,'cell_22_1')]"));
}
});

此代码等同于您的第一个片段。注释 fail() 调用并取消注释最后一次点击以获得您的“预期”行为。

顺便说一句,某些断言失败并继续执行脚本是没有意义的。您必须考虑到底要测试什么以及脚本的哪一部分应该导航到被测组件。

关于javascript - assertExists 与 if-else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32532463/

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