2017-04-06 1 views
0

は、以下のNightmareJSスクリプト...それはちょうどハングNightmareJSスクリプトは返されませんか?

var Nightmare = require('nightmare'); 

var yandex = new Nightmare() 
    .viewport(1000,1000) 
    .useragent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36") 
    .goto('https://yandex.com/') 
    .run(function(err, nightmare) { 
     if(err) { 
      console.log(err); 
     } 
    }); 

を検討し、プロンプトに私を返すことはありません。アクションが実行されます。私はスクリーンショットを取って他のことをすることができますが、ノードプロセスは決して終わりません。

答えて

1

ナイトメアを使用している場合は、問題が発生します。非同期は/待っていますが、それが失敗した場所を確認するために、各ステップの後に関数内でログインすることができNightmare.js

async function test(url){ 
    try{ 
    const nightmare = Nightmare({show:true}) 
    await nightmare.useragent(userAgentOption) 
    const response = await nightmare.goto(url) 
    await nightmare.wait(2000) 
    const evaluated = await nightmare.evaluate(()=>{ 
     return document.querySelector("input").innerHTML 
    }) 
    }catch(err){ 
    throw new Error(err)  
    } 
} 

を使用した場合の問題の多くを解決します。

さらに良いオプションは、それが鉄ノードのようにNightmare.js

デバッグ・ソリューションをデバッグする上で非常にうまく機能としてがベース電子あるWebStormを使用することであり、それらはNightmare.jsコード

では動作しません

今、あなたはそのようなコードを呼び出すことができます。

test("https://yandex.com").then(console.log).catch(console.log) 
+0

私はWebStormを使用していますが、私はちょうど、端末からそれを実行していました。それの原因は何ですか?そのような問題がありますか?ドキュメントでは、私が見たことからこの問題について言及していません。 – xendi

+0

Webstormでenv変数 "DEBUG = nightmare *"を追加するか、端末コマンドの前に追加してください –

+0

あなたの例のおかげで悪夢のAPIが動作していますが、それでも終了することはありません。私はデバッグフラグを追加しようとしました。 – xendi

関連する問題