当前位置: 首页 > 知识库问答 >
问题:

硒。常见的例外情况。WebDriverException:消息:无法通过Selenium Python使用ChromeDriver Chrome连接到服务错误

索梓
2023-03-14

所以我在一台电脑上用硒做了一个程序,成功了,现在在另一台电脑上使用它,我得到了这个错误:

selenium.common.exceptions.WebDriver异常:消息:无法连接到服务chrome驱动程序

现在,同样的问题也被提到了:

Selenium python:无法连接到服务%s“%self.path”

Selenium python:无法连接到服务%s“%self.path”

Selenium和Python3 ChromeDriver引发消息:无法连接到服务ChromeDrive

然而,所提到的解决方案并不奏效。

我使用的是chrome版本79,安装了chromedriver 79,我测试了在命令行中编写chromedriver,这就意味着路径配置正确,我已经确保127.0.0.1 localhost也在etc/hosts中

以下是我在电脑上使用的代码(因此我怀疑代码是否有问题):

chrome_options = Options()   
chrome_options.add_argument("--headless")  
with webdriver.Chrome(chrome_options=chrome_options) as driver:
    driver.set_window_size(800, 460) # takes two arguments, width and height of the browser and it has to be called before using get()
    driver.execute_script("document.body.style.zoom='150%'")
    driver.get("file:\\"+url) # takes one argument, which is the url of the website you want to open
    driver.find_element_by_tag_name('body').screenshot(output)  # avoids scrollbar

在最后一个问题中,我也尝试了这种修改

chrome_options = Options()   
chrome_options.add_argument("--headless")  
with webdriver.Chrome("C:\\chromedriver.exe",chrome_options=chrome_options) as driver:
    driver.set_window_size(800, 460) # takes two arguments, width and height of the browser and it has to be called before using get()
    driver.execute_script("document.body.style.zoom='150%'")
    driver.get("file:\\"+url) # takes one argument, which is the url of the website you want to open
    driver.find_element_by_tag_name('body').screenshot(output)  # avoids scrollbar

这会给我一个几乎相同的错误信息:

硒。常见的例外情况。WebDriverException:消息:无法连接到服务C:\chromedriver。exe

我不确定问题可能在哪里。

顺便说一下,我正在用windows。

编辑:我尝试过但没有成功的事情:

1-以管理员和普通用户的身份运行一切

2-重新安装chrome

3-使用beta色度80和WebDrive80

4-使用普通chrome 79和webdriver 79

5-使脚本和驱动程序位于同一目录中(同时使用正确的路径)

6-具有外部路径,并根据需要进行设置

7-在PATH文件夹中使用它。

8-添加"127.0.0.1localhost"etc/host

9-运行服务测试

我在每次测试中都确保了所有东西都处于正确的位置,在每次新测试之前我都会重新启动,他们总是给我同样的错误,如果路径不正确,也会发生同样的错误,但是,当我运行服务的html" target="_blank">代码时,它给了我一个不同的错误,因为我的webdriver是C:,它需要管理员权限,但是使用正确的权限再次运行测试时,返回了相同的错误

更新问题不是chrome驱动程序独有的。即使按照Firefox或边缘驱动程序的安装说明,最终也会出现同样的问题。这让我怀疑连接正面临一些问题。我尝试运行Mozilla为设置提供的测试代码,但它不起作用。

不确定这是否有很大帮助。

共有1个答案

汪兴为
2023-03-14

此错误消息。。。

selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver

...意味着ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话。

你需要注意几件事:

>

  • 确保您已从以下与基础操作系统相关的下载位置下载了ChromeDriver二进制文件的精确格式:

    • chromedriver_linux64.zip:对于LinuxOS
    • chromedriver_mac64.zip:对于Mac OSX
    • chromedriver_win32.zip:对于Windows OS

    确保/etc/hosts文件包含以下条目:

    127.0.0.1 localhost 
    

    确保ChromeDriver二进制文件对非root用户具有可执行权限。

    确保您已经通过参数executable_path传递了ChromeDriver二进制文件的正确绝对路径,如下所示:

    with webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=chrome_options) as driver:
    

    因此,您的有效代码块将是:

    options = Options()   
    options.add_argument("--headless")
    options.add_argument('--no-sandbox') # Bypass OS security model
    options.add_argument('--disable-gpu')  # applicable to windows os only
    options.add_argument("--disable-dev-shm-usage")  # overcome limited resource problems
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    with webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', options=options) as driver:
        driver.set_window_size(800, 460) # takes two arguments, width and height of the browser and it has to be called before 
        driver.execute_script("document.body.style.zoom='150%'")
        driver.get("file:\\"+url) # takes one argument, which is the url of the website you want to open
        driver.find_element_by_tag_name('body').screenshot(output)  # avoids scrollbar
    

    最后,为了避免您正在使用的二进制文件版本之间的不兼容,请确保:

    • Selenium已升级到当前版本3.141.59
    • ChromeDriver更新为当前ChromeDriver v79。0.3945.36级
    • Chrome更新到当前的Chrome 79.0版本。(根据ChromeDriver v79.0发行说明)
    • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
    • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
    • 重新启动系统
    • 以非root用户身份执行@Test

    您可以在以下内容中找到一些参考讨论:

    • Python Selenium“无法连接到服务%s”%self。linux服务器中的路径

  •  类似资料: