selenium.WebDriverException: unknown error: session deleted because of page crash from tab crashed のエラーメッセージがやたらと出るようになってしまったときに解決するためにしたことを書いておきます。
unknown error: session deleted because of page crash from tab crashed という初心者にどう対処すればいいのかあんまり示してくれていないエラーにお困りの人の役に立てればと思います。
目次
selenium.WebDriverExceptionが起きたときの状況
windows7のパソコンで、selenium3.4でchromedriverをeclipseで使っていました。chromeのバージョンは58でした。
ある日に、selenium.WebDriverException: unknown error: session deleted because of page crash from tab crashedのエラーメッセージが頻発するようになり、全然作業が進まなくなりました。
新しく書いたコードで、ページ遷移というかモーダルウィンドウ遷移を含むコードでしたが、
昨日までは、別のモーダルウィンドウ遷移を含むコードを動かしていても、こんなエラーメッセージが出るようなこともなかったし、
とにかくやたらとエラーが出て、その度に手で実行し直さないといけなかったので、面倒だし作業が進まなくて困ったという状況でした。
インターネットで原因と解決方法を探したのですが、私のような初心者にはわかりませんでした。
linux,Mac,dorkerとかメモリという単語が出てきたのはわかったのですが……
windowsで今の自分が遭遇している状況を解決してくれそうな情報を見つけることはできませんでした。
session deleted because of page crash from tab crasheを解消するためにしたこと
ただ原因はわかりませんでしたが、メモリ関係なのかなーと考えて
私の場合は以下のことを試していったらエラーは起こらなくなりました。
(どれが効果があったのかはよく覚えていないです)
クロームのバージョンを最新のバージョン(59)にした
若干、エラーの頻度が減ったような…
そんな感じでした。
同時に開いていたエクセルのプログラムを閉じた
このときに開いていたエクセルがプログラムがかたまっていて動作しなくなっていました。
エクセルを閉じたらエラーが起きる頻度が減りました。
どんな影響を与えていたのかはわかりませんが、これが大きな原因だったのかなと思っています。
ただ、まだエラーがたまに出ていたので、以下のこともしました。
クロームのブラウザを出来るだけ閉じた
Chrome のメモリ使用量を削減する
https://support.google.com/chrome/answer/6152583?hl=ja
を見たりして閉じましたけど、これは特にエラーの頻度が減ったような気がしませんでした。
タスクマネージャーからchromedriverのプロセスを閉じていった
私はアホなので、動かすコードにdriver.close()がなくて、動作が正常終了したときも異常終了したときも、chromedriverで開いたブラウザを手作業で閉じていました。
けれど、これだとchromedriverは閉じてくれないらしいですね。
(色んな記事にそう書かれているのは知っていたのですが…)
タスクマネージャーを見たら、驚きでした。
chromedriver.exeさんがなんと大量に居残っていました(笑)
これらのchromedriverプロセスをたくさん閉じました。
エラーの頻度は下がった気がします。
でもまだ、たまにエラーが起こっていたような気がします。
ページ遷移、モーダルウィンドウ遷移する箇所の処理にsleepやwaitなどの時間待機を書き加えてみた
これをやったら、ついにエラーは起こらなくなりました。
この最後の作業は別のエラー回避のためにやったことだったのか、
正直あいまいですが、とにかく上のことを試していったらエラーは解消されました。
私のような初心者でもすぐに理解できるような、
もっと原因と対策をわかりやすく示してくれるエラーメッセージが欲しいものです……(*´Д`)