selenium.com.mon.exceptions.WebDriverException:消息:无法通过Seleni



所以我在一台使用硒的计算机上制作了一个程序,并成功了,现在在另一台计算机上使用它,我得到了这个错误:

selenium.com.mon.exceptions.WebDriverException:消息:无法连接到服务chromedriver

现在,中提到了同样的问题

Selenium python:无法连接到服务%s"%self-path

Selenium python:无法连接到服务%s"%self-path

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

然而,上述解决方案并不奏效。

我使用的是chrome版本79,并且已经安装了chromedriver 79,我测试了在命令行中编写chromeriver,这意味着路径配置正确,我已经确保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

相反,它会给我这个几乎相同的错误消息:

selenium.com.mon.exceptions.WebDriverException:消息:无法连接到服务C:\chromedriver.exe

我不确定问题出在哪里。

顺便说一下,我在用窗户。

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

1-以管理员和正常的身份运行所有内容

2-重新安装铬

3-使用beta色度80和webdriver 80

4-使用普通chrome 79和webdriver 79

5-将脚本和驱动程序都放在同一目录中(同时使用正确路径)

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

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

8-将"127.0.0.1 localhost"添加到etc/hosts

9-运行服务测试

我在每次测试中都确保了一切都在正确的位置,我在每次新测试之前都会重新启动,他们总是给我同样的错误,如果我的路径不正确,也会发生这种情况,但一旦我运行了一个服务的代码,它就给了我一个不同的错误,因为我的网络驱动程序是C:/,需要管理员权限,然而,使用正确的权限再次重新运行测试会返回相同的错误

更新该问题并非chrome驱动程序独有。即使遵循Firefox或边缘驱动程序的设置说明,也会出现同样的问题。这让我怀疑这种联系正面临一些问题。我试着运行Mozilla为安装程序提供的测试代码,但没有成功。

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

此错误消息。。。

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

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


您需要处理以下几件事:

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

    • chromedriver_linux64.zip:适用于Linux操作系统
    • chromedriver_mac64.zip:适用于Mac OSX
    • chromedriver_win32.zip:适用于Windows操作系统
  • 确保/etc/hosts文件包含以下条目:

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

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

    with webdriver.Chrome(executable_path=r'C:pathtochromedriver.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:pathtochromedriver.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
    

强制性注意事项

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

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

参考

你可以在中找到一些参考讨论

  • Python Selenium"无法连接到服务%s"在linux服务器中的%self.path
  • selenium.com.mon.exceptions.WebDriverException:消息:打开chrome浏览器时无法连接到服务chromedriver.exe
  • 如何配置ChromeDriver通过Selenium在无头模式下启动Chrome浏览器

相关内容

  • 没有找到相关文章

最新更新