[英]assertExists with if-else statement
我使用以下代碼:
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-else
與assertExists
一起使用, if-else
第一個不存在,請單擊另一個元素:
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()
調用,並取消對最后單擊的注釋,以獲取“預期”行為。
順便說一句,失敗一些斷言並繼續執行腳本是沒有意義的。 您必須考慮要精確地測試什么,以及腳本的哪一部分應該導航到被測組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.