3
我想檢查選擇器是否存在於我的網頁中,但casperjs從來沒有找到它。PhantomJS/CasperJS AssertExists()失敗
我已經試過兩種方法:
1.無需等待
casper.then(function() {
// search for 'casperjs' from google form
this.test.assertExists('#search-form', 'the element exists');
// this.test.assertExists('.glyphicon.glyphicon-plus', 'the element exists');
});
2.等待選擇
casper.waitForSelector('#search-form', function() {
this.echo("I'm sure #search-form is available in the DOM");
});
3.另一個等待的做法
casper.waitFor(function check() {
return this.evaluate(function() {
return $('#search-form').length == 1;
});
}, function then() { // step to execute when check() is ok
test.assertExists('#search-form', 'tabs area is found');
}, function timeout() { // step to execute if check has failed
this.echo("Timeout: page did not load in time...").exit();
});
到目前爲止,他們都沒有找到選擇器。而這個選擇器是從html加載的,它不是由javascript插入的。
任何想法?
+1有人可能認爲這可能已過時,但有時一個頁面將具有不同的DOM元素,具體取決於userAgent或在瀏覽器或phantomjs中分解。 –
你說得對,我有一個問題,默認情況下,CasperJs用Linux **推出了移動版本的網站**。 userAgent對設備奇怪地未知,導致casper切換到移動版本。我注意到它只是通過檢查DOM(並用'this.capture()'確認它)。 Marcelosalloum,你可以等待一個元素出現,如果它不存在,它將無法工作。最好知道什麼是現在,而不是什麼不是。 – Fanch