2017-04-02 8 views
6

Jenkinsからスクリプトを実行しているときに、このようなセッションエラーが発生することはよくありません。何が原因なの?接続に失敗しましたか、何らかの理由がありますか(私は約26のスクリプトを実行していますが、少なくとも1つのスクリプトにそのようなセッションエラーはありません)ChromeDriverでこのようなセッションエラーが発生していない

スクリプトは異なるスクリプトであり、このようなセッションエラーは繰り返されません同じスクリプトの場合

+0

あなたの質問を詳細で完了できますか?どのブラウザとSeleniumバージョンを使用していますか?あなたはSelenium Gridに対して実行していますか?もしそうなら、あなたはそれに何本のノードを設定していますか? – Tom

+0

最新のセレンバージョンのChromeとChromeDriverを使用していますが、まだ問題が存在しています – Shan

+0

[Chromium](https://bugs.chromium.org/p/chromedriver/issues/detail?id = 732)。私はまだこれで頭痛を抱えています。私はDockerイメージでSelenium3を使用しており、安定した動作をすることができませんでした。 – Tom

答えて

4

私はこの種のケースに時々遭遇しました。私はSeleniumではなくLaravel DuskでChromeDriverを使用しています。しかし、私は原因がSeleniumではなくChromeDriverにあると信じています。

ChromeDriverはフォルダ:C:\Users\(yourAccountName)\AppData\Local\Tempにいくつかのキャッシュファイルを作成します。このフォルダには、scoped_dir1234_5678のような多くのキャッシュフォルダが表示されます。各フォルダは約10MBを占有していました。 JenkinsがChromeDriverを頻繁に実行すると、ChromeDriverは一時フォルダ内のキャッシュファイルを過剰に使用する可能性があります。 Cドライブには30〜50GBのキャッシュファイルがあり、Cドライバがいっぱいになるはずです。

私のCドライブが空き領域にない場合、ChromeDriverは起動できず、「Facebook \ WebDriver \ Exception \ NoSuchDriverException:そのようなセッションはありません」というエラーメッセージが返されます。

ソリューション:

  1. が一時フォルダに移動し、Cのスペースをクリーンアップすることができ、すべてのChromeDriverキャッシュフォルダを削除。
  2. ChromeDriverのキャッシュフォルダを削除/クリーンアップできるスクリプトを作成します。

--UPDATE--

問題が発生する別の状況を検索します。

ChromeDriverを同じOSで2つの異なるインスタンスで同時に起動する場合、1つのインスタンスが終了してクロムドライバをシャットダウンすると、別のクロムブラウザインスタンスも閉じられます。

たとえば、2つのコンソールとexcute chromedriver scrpitを開くか、Jenkinsプロジェクトを同時に開始します。

異なるスクリプトを実行しても、同時にchromedriverが必要な場合でも、私は信じています。スクリプトの1つは、クロムbroswerインスタンスのシャットダウンのために「そのようなセッションはありません」となります。

ソリューション:

  1. プロジェクトを対象とビルドブロッカー、中にプロジェクトを設定ジェンキンス
  2. でビルドブロッカーをインストールし、それが終了するまで、それを待つ必要があります。

私のケースでは、セレンなしでララベルダスクを使用しています。テストがセレンのサーバーを通過するときに違うかどうか分かりません

関連する問題