代码之家  ›  专栏  ›  技术社区  ›  frequent

在Chromebook上运行硒需要哪些版本的铬、硒和Chromedriver?

  •  1
  • frequent  · 技术社区  · 6 年前

    我想在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 它并没有告诉我从哪里开始寻找要尝试的版本。

    我想除了不兼容的版本之外,我已经涵盖了所有的情况,所以问题是,谁能告诉我哪个版本的版本可以运行这个程序?

    1 回复  |  直到 6 年前
        1
  •  1
  •   undetected Selenium    6 年前

    此错误消息…

    selenium.common.exceptions.WebDriverException: Message: chrome not reachable
    

    …意味着 铬河 无法启动/生成新的 控件 Chrome浏览器 会议。

    除了这个错误之外,还有很多可能性:

    • 就像你穿的一样 Linux操作系统 当你提到 二进制你需要删除扩展名,即。 .exe 具体如下:

      chrome_options.binary_location = '/etc/chromium'
      
    • 当您初始化 浏览会话您需要传递两个参数 铬合金选项 可执行路径 具体如下:

      driver = webdriver.Chrome(executable_path='/usr/local/chromedriver/chromedriver', chrome_options=chrome_options)
      
    • 就像平常一样 Chrome浏览器 GA发布, Chrome团队 是否释放 铬河 支持添加/修改功能以及腐蚀的二进制文件 Chrome浏览器 版本。你需要确保 chrome chromedriver 使用的二进制文件在 Release Notes 是的。

    您可以在中找到有关版本控制的相关讨论 Selenium for ChromeDriver and Chrome Browser

    但是,你的主要问题是 不相容 在您使用的二进制文件版本之间,如下所示:

    支架 铬V52-54

    支架 铬V54-56

    所以很明显 Chromedriver 2.24版 Chrome浏览器V55.0

    解决方案