我正在尝试通过使用selenium的调度程序运行脚本,但它显示以下错误 - 消息:服务/app/.apt/opt/google/chrome/chrome意外退出。状态代码为:-6 我已经使用了两个buildpacks - https://github.com/heroku/heroku-buildpack-chromedriver.git https://github.com/heroku/heroku-buildpack-xvfb-google-chrome
脚本是:
chrome_exec_shim = "/app/.apt/opt/google/chrome/chrome"
opts = webdriver.ChromeOptions()
opts.binary_location = chrome_exec_shim
driver = webdriver.Chrome(executable_path=chrome_exec_shim, chrome_options=opts)
答案 0 :(得分:1)
您应该下载Chrome驱动程序here。 您可以将它放在chrome包中,这样您根本不需要设置路径。 (根据我的经验,最好放入路径)或者您可以将下载的驱动程序的路径放在项目文件夹中(推荐)。
只需将变量 chrome_exec_shim 更改为驱动程序的路径。
答案 1 :(得分:1)
下载了chromedriver后,它发出错误,表示未找到二进制文件。 在可执行路径中提供chrome的地址,在chrome选项中提供chrome驱动程序的路径。 这也导致了错误,并且在chrome选项中添加了--disable-gpu和--no-sandbox参数后,它得到了解决。 谢谢您的帮助... :) 最后运行的代码低于 -
from selenium import webdriver
import os
chrome_exec_shim = os.environ.get("GOOGLE_CHROME_BIN", "chromedriver")
opts = webdriver.ChromeOptions()
opts.binary_location = chrome_exec_shim
opts.add_argument('--disable-gpu')
driver = webdriver.Chrome(executable_path='/app/development/chromedriver', chrome_options=opts)
答案 2 :(得分:1)
chrome_exec_shim = "/app/.apt/opt/google/chrome/chrome"
opts = webdriver.ChromeOptions()
opts.binary_location = chrome_exec_shim
opts.addArguments("--no-sandbox");
opts.addArguments("--disable-gpu");
driver = webdriver.Chrome(executable_path=chrome_exec_shim, chrome_options=opts)
尝试使用此代码。 您必须添加chromeoption的参数,它才会起作用。 我试过这个,它为我工作。