1

私のテスト(Nightwatch.jsで書かれています)をヘッドレスクロムでローカルに実行しようとしています。 しかし、ヘッドレスモードで要素を見つけることができないのでテストは失敗します(ヘッドレスモードなしでも機能します)。ナイトウォッチテストでヘッドレスクロムモードの要素が見つかりません

私が失敗したスクリーンショットを確認すると、私は白い画面しか表示されません。 しかし、 "body"要素のテストがチェックされると、実際には通過します。だから私は、ページがロードされていると思うが、おそらくヘッドレスクロムは、何らかの理由で、JavaScriptを読み込むことができないのですか?後でdivやボタンなどが数秒間表示されるのを待つが、見つからない。

何が間違っている可能性がありますか? nighthead設定ファイルのdesiredCapabilitiesに--headlessと--disable-gpuフラグを追加しました。

+0

に誰かに時間のカップルを救うことを願っていますあなたはこれに対する解決策を見つけましたか? – SuperUberDuper

+0

私はMacで同じ問題が発生しています。私はあなたから聞いてうれしいよ! – Jeremad

答えて

0

は、私はあなたがこれを試してみてくださいLinuxの上にある場合は、Nightwatch.js

でバイナリパスを宣言すべきだと思う、それは私のために完璧に動作します:あなたは、Mac上にある場合は、あなたのバイナリを置き換える

  "desiredCapabilities": { 
      "browserName": "chrome", 
      "javascriptEnabled": true, 
      "acceptSslCerts": true, 
      "chromeOptions": { 
       "args": [ 
        "headless", "disable-gpu" 
       ], 
       "binary": "/usr/bin/google-chrome" 
       } 
     } 

例えば、/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

0

私は返事で昨日同じ問題を抱えていたので、私はちょうどgoogleのホームページでダミーのテストをしようとしていました。今朝、新鮮な脳で私はそれに取り組もうとしました。夜間監視が要素を見つけられない直前にスクリーンショットを撮るという素晴らしいアイデアがありました。

「通常の」クロムは英語のホームページを持ち、「ヘッドレス」のクロムは何らかの理由でフランス語のホームページを持っていました。

私はこれを発見しました:https://bugs.chromium.org/p/chromedriver/issues/detail?id=1925が理由を説明しているかもしれません。私は常に正しい言語を有することが判明し 回避策は次のとおりです。

"chromeOptions" : { 
    "args" : ["--lang=fr", "--headless"] 
} 

は、私はまだ(不気味)英語での設定に苦労を持っているが、私は、これは将来の