我想在chromebook上使用chromedriver来运行硒测试,但是我无法让它工作。
安装程序
我有
crouton
和
chromebrew
安装。Chromebrew有针对Virtualenv和Python3.6的软件包,以及
pip install Selenium
我有硒。从
ChromeDriver ChromeOS documentation
我知道铬河在
/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/permissions/etc的错误。
测试文件
我的测试文件仅包含:
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)
我还在
chromedriver documentation
要将chromedriver作为服务运行,其结果与上述相同:
import time
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('/usr/local/chromedriver/chromedriver')
service.start()
capabilities = {'chrome.binary': '/etc/chromium.exe'}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://localhost:8000');
time.sleep(5) # Let the user actually see something!
driver.quit()
你会看到我在功能上把chrome换成了定制chrome。从
chromedriver documentation
还有这个
SO answer
这是将默认的chrome二进制文件替换为自定义二进制文件的方法。
我从中了解
github issue
问题可能是组件的版本之间不太协调,但是
Chromedriver documentation
它并没有告诉我从哪里开始寻找要尝试的版本。
我想除了不兼容的版本之外,我已经涵盖了所有的情况,所以问题是,谁能告诉我哪个版本的版本可以运行这个程序?