先日MENTAの相談でSeleniumを実行すると「Message: session not created」という相談を受けたので解決法をメモしておきます。
「Message: session not created」の原因①
結論からいうと原因は「chromeのブラウザのバージョンとseleniumで使用しているwebdriverのバージョンが一致していない」ことが9割です。
この場合はWebdriverを更新してください。ただWebdriverを更新するのは毎回面倒なので、webdriver-managerとchromedriver_binaryでドライバーの更新自体を自動化するのがオススメです。
# ライブラリをインストールする
$ pip install webdriver-manager
$ pip install selenium
$ pip install --upgrade chromedriver_binary
<サンプルコード>
import subprocess
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import chromedriver_binary
cmd = 'pip install --upgrade chromedriver_binary'
res = subprocess.call(cmd, shell=True)
url = 'https://www.mgstage.com/'
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = { 'performance': 'ALL' }
driver = webdriver.Chrome(ChromeDriverManager().install(),desired_capabilities=d)
driver.set_window_size('1200','1000')
driver.get(url)
「Message: session not created」の原因②
残りは以前実行したSeleniumのセッションが残っていてセッションがパンクしているケースです。
これはヘッドレスモードなどでseleniumを実行していると起こることがあります。
解決法はバックグラウンドで動作しているseleniumのchromeのプロセスをキルしてあげることです。
$ pkill chrome
参照:https://qiita.com/tyabotyabo/items/1142a601c460e890631e
プロセスの見つけ方などは以下参照
関連記事:【Centos7】Cron上で無限実行しているファイルを停止する
終わり
コメント