spookyjs / capserjs でスクリーンスクレイピング中に奇妙な問題が発生しました。
次の Web サイトから情報をキャッチしたい: ' https://www.rwe-smarthome.de/is-bin/INTERSHOP.enfinity/WFS/RWEEffizienz-SmartHome-Site/de_DE/-/EUR/ViewApplication-DisplayWelcomePage '.
このサイトには複数の製品ページが含まれているため、他のサイトも開きたいです。
通常は使用できます
this.click(selector, function() {});
これを達成するために。
いくつかの奇妙な理由により、これはここでは機能していません。
次のコードを見てください。
var selector1 = "div#workingTemplate div:first-of-type ul.linkList li:nth-child(2) a";
spooky.waitUntilVisible(selector1);
spooky.thenClick(selector1);
spooky.wait(500);
spooky.then(function() {
this.capture("RWETest-02.jpg");
});
エラーが表示される
CasperError: Cannot dispatch mousedown event on nonexistent selector: div#workingTemplate div:first-of-type ul.linkList li:nth-child(2) a
セレクター / DOM オブジェクトが存在しない場合、 で失敗するはずなので、これは奇妙ですwaitUntilVisible()
。
また、セレクターが存在するかどうかを確認しようとすると、存在しないセレクターでもエラーが発生するため、答えは「はい」のようです。
コード:
spooky.then([{sel: selector1},function() {
if(this.exists(sel)) {
this.click(sel);
this.wait(500);
this.then(function() {
this.capture("RWETest-02.jpg");
});
}
else {
this.emit("logMessage", "Selector does not exists...");
}
}]);
エラー:
CasperError: Cannot dispatch mousedown event on nonexistent selector: div#workingTemplate div:first-of-type ul.linkList li:nth-child(2) a
SpookyJS のため、私は PhantomJS 1.9.7 と CasperJS 1.1.0-beta3 を使用しています。
誰かがこれについて考えを持っていますか?