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

前端 未结 2 1687
慢半拍i
慢半拍i 2021-01-05 09:26

I\'m using webdriver to config a router, but when I run script:

from selenium import webdriver
self.driver = webdriver.Chrome()

It opens ch

相关标签:
2条回答
  • 2021-01-05 10:01

    In pure case "chrome not reachable" means that Chrome binary can be started but debugging port is not reachable.

    Debugging port is set by argument: --remote-debugging-port=12582

    In my case it happens because some issues with sand-box:

    ps afvvx | grep chrome
    
    /opt/google/chrome/chrome --disable-background-networking --disable-client-side-phishing
    21026 pts/2    S+     0:00      0    47  6008   100  0.0  |           \_ cat
    21027 pts/2    S+     0:00      0    47  6008   100  0.0  |           \_ cat
    21029 pts/2    Z+     0:00      0     0     0     0  0.0  |           \_ [chrome-sandbox] <defunct>
    

    When I run /opt/google/chrome/chrome-sandbox

    # /opt/google/chrome/chrome-sandbox  -h
    The setuid sandbox provides API version 1, but you need 0
    Please read [https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment][1].
    
    close: Bad file descriptor
    Read on socketpair: Success
    

    From url above I can't get what I'll to do to fix SUID SandBox, but it can be switched off by Chrome arg --disable-setuid-sandbox(sometimes with --no-sandbox):

    import time
    from selenium import webdriver
    
    from xvfbwrapper import Xvfb
    
    vdisplay = Xvfb()
    vdisplay.start()
    
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-setuid-sandbox")
    
    driver = webdriver.Chrome('/usr/local/sbin/chromedriver', chrome_options=chrome_options)  # Optional argument, if not specified will search path.
    driver.get('http://www.google.com/xhtml');
    time.sleep(5) # Let the user actually see something!
    search_box = driver.find_element_by_name('q')
    search_box.send_keys('ChromeDriver')
    search_box.submit()
    time.sleep(5) # Let the user actually see something!
    driver.quit()
    
    vdisplay.stop()
    
    0 讨论(0)
  • 2021-01-05 10:06

    Another case it's when some package is not installed like dbus-X11:

    /opt/google/chrome/google-chrome --no-sandbox --disable-setuid-sandbox --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-hang-monitor --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-logging --ignore-certificate-errors --load-extension=/tmp/.com.google.Chrome.a0gQAp/internal --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12512 --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/.com.google.Chrome.dgq4j1 data:,
    [39330:39330:0501/130308:ERROR:browser_main_loop.cc(185)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
    Xlib:  extension "RANDR" missing on display ":1070".
    Xlib:  extension "RANDR" missing on display ":1070".
    [39330:39330:0501/130308:ERROR:desktop_window_tree_host_x11.cc(830)] Not implemented reached in virtual void views::DesktopWindowTreeHostX11::InitModalType(ui::ModalType)
    
    (google-chrome:39330): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
    /usr/bin/dbus-launch terminated abnormally without any error message
    [39330:39353:0501/130308:ERROR:browser_gpu_channel_host_factory.cc(151)] Failed to create channel.
    

    Just install it with:

    apt-get install dbus-X11
    
    0 讨论(0)
提交回复
热议问题