Selenium/ChromeDriverでChromiumの新しい(2016)headlessバージョンを使用しようとしています(以前は、Firefoxとxfvbを使用していましたが、これにより、はるかに良くなる)。
私が見つけた指示に基づいて、ソースからChromiumのヘッドレスバージョンをコンパイルしました(ビルド済みのバイナリは見つかりませんでした) here 次に、次のコードを使用してSeleniumから起動しました。
from Selenium import webdriver
from Selenium.webdriver.chrome.options import Options
l_option = Options()
l_option.add_argument('headless')
l_option.add_argument('disable-notifications')
l_option.binary_location = '/home/fi11222/Headless_Chromium/headless_Shell'
l_driver = webdriver.Chrome(chrome_options=l_option)
同じコードが標準のクロムで動作します(binary.location
オプションを削除した場合)
ただし、次のエラーが発生します。
Selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Chrome version: HeadlessChrome/59.0.3032.0
(Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-53-generic x86_64)
どうやら、ヘッドレスクロムバイナリは、ChromeDriverが認識しないバージョンIDでコンパイルされています。助けて !!
環境:
ChromeHeadlessは このパッチ (メッセージの投稿後に作成)以降、chromedriver 2.29(2017年4月にリリース)以降でのみ利用可能です。このchromedriver実行可能ファイルがPATHで利用可能であり、Seleniumが他の利用可能なchromedriverの代わりにそれを選択していることを確認してください。
また、- headless Chrome documentation によると、さらに2つのフラグを渡す必要があることに注意してください。
l_option.add_argument('remote-debugging-port=9222')
l_option.add_argument('disable-gpu')
ヘッドレスのビルド済みバイナリについてはChrome-このオプションはChrome 57以降に利用できるため、公式のGoogleリポジトリを通じて現在配布されているすべてのバージョンでサポートされています(つまり、安定Chrome 58および不安定Chrome 59)です。これは Chrome 59 のハイライトであるため、機能が完成するまで、いくつかの粗いエッジを期待します安定した。