今回はAWSやGCPなどのVPSサーバーでSeleniumがSessionNotCreatedになるときの対処法について紹介したいと思います
エラーメッセージ
SessionNotCreatedException: Message: session not created:
エラーの原因
① ブラウザとドライバーのバージョンが違う
よくある原因は「ブラウザとドライバーのバージョンが違う」ことです。これはSeleniumでは4.6以降のバージョンで、ブラウザドライバーがPATHに存在しない場合に自動的に設定される仕様となっているのでseleniumのバージョンをアップグレードすることで解決します
$ pip install selenium==4.17.2
<Selenium4でのコードサンプル>
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://~~~~~~") time.sleep(3) driver.find_element(By.NAME, "adminid").send_keys(adminID) driver.find_element(By.NAME, "loginname").send_keys(loginName) driver.find_element(By.NAME, "password").send_keys(password) driver.find_element(By.NAME, "login").click() driver.quit()
関連記事:Seleniumで「’WebDriver’ object has no attribute ‘find_element_by_○○’」が表示される原因と解決法
②そもそもGoogleChromeがインストールされていない
例えばGCPやAWSなどのVPSクラウド環境の場合、よくよく考えるとサーバーにGoogleChromeがインストールされていなかった、というケースがあります。
その場合以下のコマンドでgoogle-chromeをインストールすれば解決する可能性があります
# Install Chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt-get -f install -y --force-yes sudo dpkg -i google-chrome-stable_current_amd64.deb
それでも治らない場合は下記のコマンドでgoogle-chromeとchromedriverのバージョンが一致しているか確認するとズレていないかチェックしてみてください
$ google-chrome --version $ chromedriver --version
コメント