Defaultのuser-dataを使用してgoogle chromeをheadlessモードで起動させたいのですがuser-dataをセット出来ていないようなので解決方法を教えてください。
環境:
0. CentOS Linux release 7.9.2009 (Core)
0. Python 3.7.6
0. Google Chrome 88.0.4324.150
def setDriver(): # driverのセット options = Options() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-gpu') options.add_argument('--user-data-dir=/home/user/.config/google-chrome') options.add_argument('--profile-directory=Default') options.add_argument('--window-size=1280,1024') chromedriver = "/usr/local/bin/chromedriver" driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=options) # ファイルのダウンロード用 driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') driver.execute("send_command", { 'cmd': 'Page.setDownloadBehavior', 'params': { 'behavior': 'allow', 'downloadPath': csv_path } }) # driver set ここまで allCookies = self.driver.get_cookies() #取得したクッキーを表示 print('Cookies are ') print(allCookies) # chromeのバージョンを表示 driver.get('chrome://version') sleep(15) driver.save_screenshot('/home/user/screenshot/version.png')
上記内容を実行しますと
Cookies are
[]
とCookieは空で
chrome://versionを表示させたscreenshotは
真っ白で何も表示されません。
googleのホーム画面をscreenshotで保存すると正常に表示されます。
headlessモードではuser-dataをセット出来ないのでは?と思い、options.add_argument('--headless')をコメントアウトして実行してみましたらエラーが発生しました。
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
よろしくお願いします。
あなたの回答
tips
プレビュー