2

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 を使用しています。

誰かがこれについて考えを持っていますか?

4

1 に答える 1