SeleniumでChrome Beta版を使用する方法を解説していきます。Windows・ Mac両方に対応しています。
安定版で問題が起きた時の代替として(余談)
最近、毎日動かしていたプログラムが以下のようなエラーで止まってました。
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot determine loading status
from unknown error: unexpected command response
(Session info: chrome=103.0.5060.53)
色々、調べてみると2022/06/23に安定版がリリースされたChrome 103によるもので、今のところ解決策もない模様。
ChromeDriver 103.0.5060.53 has been released
https://groups.google.com/g/chromedriver-users/c/BroyfA_GXNQ
(私同様、世界中の皆さんが困ってる模様...笑)
考えられる解決方法「Chrome 102にダウングレードする」と「Chrome 104(Beta版)を使う」の2つ。
ただし、前者は色々と面倒なので、Beta版で特段 問題がない限りChrome 104(Beta版)を使うのが良いと思う。なにより、Beta版と安定版は共存できるので、すでにインストールされている安定版(今回でいうとChrome 103)をアンインストールしたり、変更を加えたりする必要がない。
とりあえず、Chrome 104の安定版がリリースされる08/04まではBeta版を使っていこうと思う。
Chrome Beta版のインストール
いうまでもないと思いますが、まずはChromeのBeta版をインストールします。以下のリンクからダウンロードしてインストールしてください。
https://www.google.com/intl/ja/chrome/beta/
インストールすると、以下のようなアイコンのChromeがシステムに追加されます。これでインストール完了です。
ChromeDriverのダウンロード
2022/07/07追記 webdriver_managerを使って、Chrome Beta版でもChromeDriverを自動で取得・更新したい場合は、併せてこちらの記事をご覧ください。手動でドライバーをダウンロードして、パスを指定したりといったような作業が不要なので、こちらのがオススメです。
通常(安定版)の Chromeのときと同様に、Chrome Beta版の現在のヴァージョンを確認し、そのヴァージョンのChromeDriverをダウンロードします。
以下のリンクからChromeDriverをダウンロードします。
https://chromedriver.chromium.org/downloads
ダウンロードしたZIPファイルを展開し、中身のchromedriverを任意の場所に置きます。場所はどこでも構いませんが、私はWindows・Macそれぞれ以下の場所に保存しています。
Windows | C:\Users\[ユーザー名]\wd\104.0.5112.20\chromedriver |
Mac | /Users/[ユーザー名]/wd/104.0.5112.20/chromedriver |
Windows
Mac
SeleniumでChrome Beta版を使用するように指定
Windows・Macそれぞれ以下のように記述して、SeleniumをChrome Beta版で実行できます。
Windows
#==========Windows用==========
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options
options = Options()
#注意:pathの区切りは、「\」(バックスラッシュ)ではなく「/」(スラッシュ)を使用しています。
#Chromeの場所を指定
options.binary_location = 'C:/Program Files/Google/Chrome Beta/Application/chrome.exe'
#ChromeDriverの場所を指定
chrome_service = ChromeService(executable_path='C:/Users/[ユーザー名]/wd/104.0.5112.20/chromedriver.exe')
driver = webdriver.Chrome(service=chrome_service,options=options)
#google.comを開く
driver.get('https://google.com')
Mac
#==========Mac用==========
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options
options = Options()
#Chromeの場所を指定
options.binary_location = '/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta'
#ChromeDriverの場所を指定
chrome_service = ChromeService(executable_path='/Users/[ユーザー名]/wd/104.0.5112.20/chromedriver')
driver = webdriver.Chrome(service=chrome_service,options=options)
#google.comを開く
driver.get('https://google.com')
COMMENTS
beta版についての記事を探していたのでとても助かります、ありがとうございます。
さっそく内容に沿ってプログラムを書いてみたのですが、Beta版の立ち上げに失敗してしまいます。何か原因などわかりますでしょうか?
エラー文:
selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to create Chrome process.
環境:
Mac:12.3.1
Python:3.10.1
Selenium:4.3.0
ChromeDriver 104.0.5112.29
試していること:
・Beta版、ChromeDriverの入れ直し ->変わらず。
・Chrome103での起動->こちらの起動自体はできる。
私の環境で同様のエラーを再現できないので、原因が分からないのですが、ログオンしているユーザーは「管理者」ですか?
ユーザー種類の確認方法
https://support.apple.com/ja-jp/guide/mac-help/mtusr001/mac
はい、ログオンしているユーザーは管理者です。
改めて確認したところ、正常に動きました。Chrome Betaのパスの書き方に問題がありました。
(Betaのパスをコピーして「options.binary_location ='/Applications/Google Chrome Beta.app'」としていたのですが、記事通り、「'/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta'」と記したところ立ち上がりました。)
お騒がせしました..!
なるほど!解決できてよかったです!