在 Python 中使用 chromedriver_autoinstaller 运行 selenium 时出现问题
Posted
技术标签:
【中文标题】在 Python 中使用 chromedriver_autoinstaller 运行 selenium 时出现问题【英文标题】:Problems when running selenium with chromedriver_autoinstaller in Python 【发布时间】:2022-01-22 19:55:42 【问题描述】:我有以下问题。我想使用 chromedriver_autoinstaller
在我的 Ubuntu 上运行 chromium。我的代码是:
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists
# and if it doesn't exist, download it automatically,
# then add chromedriver to path
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options = options)
driver.get("http://www.python.org")
但是想要的网址http://www.python.org
打不开,我只是在浏览器中看到data:,
:
我尝试添加一些选项,但没有帮助:
from selenium import webdriver
import chromedriver_autoinstaller
chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists
# and if it doesn't exist, download it automatically,
# then add chromedriver to path
options = webdriver.ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument('--remote-debugging-port=9222')
driver = webdriver.Chrome(options = options)
driver.get("http://www.python.org")
完整的追溯:
Traceback (most recent call last):
File "/usr/lib/python3.8/code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 14, in <module>
File "/home/vojtam/Desktop/greads_scrape/venv/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
RemoteWebDriver.__init__(
File "/home/vojtam/Desktop/greads_scrape/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/vojtam/Desktop/greads_scrape/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/vojtam/Desktop/greads_scrape/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/vojtam/Desktop/greads_scrape/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
你知道这里有什么问题吗?
我发现了这个问题,但对我没有帮助: WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser
unknown error: DevToolsActivePort file doesn't exist error while executing Selenium UI test cases on ubuntu
Tests fail immediately with unknown error: DevToolsActivePort file doesn't exist when running Selenium grid through systemd
【问题讨论】:
用完整的错误堆栈跟踪更新问题。 @DebanjanB 查看更新 你为什么要使用--no-sandbox
和--disable-dev-shm-usage
,我可以看到你使用用户配置文件vojtam
@DebanjanB 我在第二个例子中试过这个。首先,我没有使用任何选项,正如您在我的问题中看到的那样。
【参考方案1】:
问题是 Docker 在 selenium 中运行 chrome 时需要 chrome_options.add_argument("--headless")
【讨论】:
以上是关于在 Python 中使用 chromedriver_autoinstaller 运行 selenium 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
Selenium with Python - Chromedriver 必须在 PATH 中
使用 Selenium Python 和 chromedriver 截取整页截图
Python Selenium ChromeDriver不等待页面加载