Python 在Chromebook上运行Selenium需要哪些版本的Chromium、Selenium和Chromedriver?
我想在Chromebook上使用Chromedriver运行Selenium测试,但我无法让它工作 设置Python 在Chromebook上运行Selenium需要哪些版本的Chromium、Selenium和Chromedriver?,python,selenium,selenium-chromedriver,chromium,chromebook,Python,Selenium,Selenium Chromedriver,Chromium,Chromebook,我想在Chromebook上使用Chromedriver运行Selenium测试,但我无法让它工作 设置 我已经安装好了。chromebrew有针对virtualenv和Python3.6的软件包,另外还有pip安装SeleniumI获得了Selenium。从中我知道chromedriver位于/usr/local/chromedriver中。称之为: chronos@localhost /usr/local/chromedriver $ chromedriver Starting Chrom
我已经安装好了。chromebrew有针对virtualenv和Python3.6的软件包,另外还有
pip安装Selenium
I获得了Selenium。从中我知道chromedriver位于/usr/local/chromedriver
中。称之为:
chronos@localhost /usr/local/chromedriver $ chromedriver
Starting ChromeDriver 2.24 on port 9515
Only local connections are allowed.
给我版本,我只想测试localhost
,所以我很好,有:
Versions:
ChromiumOS 55.0.2883.100 (64-bit)
Python 3.6
Selenium bindings for Python 3.13.0
Chromedriver 2.24
我(想我)知道Chromedriver的行为就像端口9515上的服务器一样,等待来自test.py
的调用。我胡乱摆弄,直到不再因为缺少chromedriver/权限/等而出现错误
测试文件我的测试文件仅包含:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.binary_location = '/etc/chromium.exe'
driver = webdriver.Chrome('/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
driver.get("http://localhost:8000")
如果我调用python3 test.py
或get(“http://localhost:8000“
什么也没发生,在我调用python3时,我最终得到了:
Traceback (most recent call last):
File "test.py", line 6, in <module>
driver = webdriver.Chrome('/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
File "/usr/local/demo/venv/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 75, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/demo/venv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/demo/venv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 251, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/demo/venv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 320, in execute
self.error_handler.check_response(response)
File "/usr/local/demo/venv/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
(Driver info: chromedriver=2.24,platform=Linux 3.14.0 x86_64)
你会看到我在功能中用定制的Chrome替换了Chrome。这是用自定义的Chrome二进制文件替换默认Chrome二进制文件的方法
我从中了解到,问题可能是组件的版本彼此之间的关系不好,但它指向的并没有真正告诉我从哪里开始寻找要尝试的版本
我想我已经涵盖了除不兼容版本之外的所有情况,所以问题是,谁能告诉我哪个版本的什么可以让它运行?此错误消息
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
…意味着ChromeDriver无法启动/生成新的网络浏览器,即Chrome浏览器会话
除此错误外,还有以下多种可能性:
chrome_options.binary_location = '/etc/chromium'
driver = webdriver.Chrome(executable_path='/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
- 当您在Linux操作系统上提到chromium二进制文件的绝对路径时,您需要剥离扩展名,即
,如下所示:.exe
chrome_options.binary_location = '/etc/chromium'
driver = webdriver.Chrome(executable_path='/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
- 初始化Chrome浏览会话时,需要传递参数Chrome\u选项和可执行路径,如下所示:
chrome_options.binary_location = '/etc/chromium'
driver = webdriver.Chrome(executable_path='/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
- 就像常规的Chrome浏览器GA版本一样,Chrome团队确实发布了ChromeDriver二进制文件,添加/修改了功能以及相应的支持Chrome浏览器版本。您需要确保正在使用的
和chrome
二进制文件在以下步骤中同步chromedriver
chrome_options.binary_location = '/etc/chromium'
driver = webdriver.Chrome(executable_path='/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
- 您使用的是chromedriver=2.24
- 的发行说明明确提到以下内容:
- 您使用的是chrome=55.0
- 的发行说明明确提到以下内容:
- 将ChromeDriver升级到当前级别
- 将Chrome版本保持在Chrome v66-68级别之间。()
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- (仅限LinuxOS)在执行测试套件之前和之后
- 如果您的基本Web客户端版本太旧,请通过卸载它并安装最新的GA和Web客户端发布版本
- 重新启动系统
- 执行
@测试