can not connect to the service chromedriver问题的处理

背景

  • 一个同学反馈运行如下代码

     from selenium import webdriver   
     from  time import sleep
     driver = webdriver.Chrome()    
     driver.get("https://cn.bing.com")
     driver.find_element("id","sb_form_q").send_keys("松勤软件测试\n")    
     sleep(3)                                  
     driver.quit()  
  • 报错了

  • 一看这个错误没见到过,驱动应该是有的,版本也应该对的,无法连接到chromedriver

  • 考虑到chromedriver本身就是一个web server

     C:\Users\songqin008>chromedriver
     Starting ChromeDriver 103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}) on port 9515
     Only local connections are allowed.
     Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
     ChromeDriver was started successfully.
     ​
  • 其实你是可以在浏览器中访问http://127.0.0.1:9515/的,当然这个get并不会返回太多有用的信息,只能说可以看到。

解决

  • 一开始我只想到这里,但不知道如何解决

  • 搜索引擎一查,说是hosts文件可能会影响

  • 查了下这位同学的hosts

  • 少了下面一行

     127.0.0.1 localhost
  • 加上后解决

思考

  • 猜猜:代码自动调起chromedriver,并作为webserver访问其api,这个地址可能是127.0.0.1?但没有找到所以报错。

  • 搜索代码发现,报错信息在selenium\webdriver\common\service.py,105行

             while True:
                 self.assert_process_still_running()
                 if self.is_connectable():
                     break
     ​
                 count += 1
                 sleep(0.5)
                 if count == 60:
                     raise WebDriverException("Can not connect to the Service %s" % self.path)
  • 30秒超时时间会提示这个,跟实际代码运行效果类似。

  • 那代码self.is_connectable()就应该是不为True的

         def is_connectable(self):
             return utils.is_connectable(self.port)
  • 再看is的定义

     def is_connectable(port: int, host: Optional[str] = "localhost") -> bool:
      pass #略
  • 答案呼之欲出,上面的代码默认值就是localhost

  • 你现在没有这个,自然就不行咯

FAQ Selenium中提示can not connect to the service chromedriver 的解决方法的更多相关文章

  1. selenium WebDriver提示Unable to find a matching set of capabilities解决方法

    问题出在:应该将火狐浏览器驱动添加到火狐浏览器安装目录下,并且将火狐浏览器安装目录放在path下面.(出现大意,忘了在火狐浏览器下放其对应的驱动) 亲测以下组合方式可用:   pycharm-comm ...

  2. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...

  3. PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法

    这篇文章主要介绍了PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法,是在进行PHP数据库程序开发中常会遇 ...

  4. Win10无法连接远程桌面提示“你的凭据不工作”的三个解决方法

    Win10无法连接远程桌面提示"你的凭据不工作"的三个解决方法(转藏) 解决方法一:修改组策略 1.在"开始"窗口运行gpedit.msc,进入计算机配置-&g ...

  5. win10提示“无法设置移动热点 请打开WLAN”的解决方法

    一位用户在使用Win10创意者操作系统过程中,遇到了无法开启移动热点的情况,开关呈灰色状态,而且提示:无法设置移动热点 请打开WLAN,该如何解决呢?该用户表示Wlan一直开着呀,感觉非常奇怪.接下来 ...

  6. 使用sklearn中的fetch_mldata的错误情况以及可能可行的解决方法

    使用sklearn中的fetch_mldata的错误情况以及可能可行的解决方法 在notebook使用的时候出现了报错 from sklearn.datasets import fetch_mldat ...

  7. 使用VMware Converter Standalone Client进行虚拟机 P2V提示 权限不足,无法连接\\ip\admin$的解决方法集锦

    使用VMware vCenter Converter Standalone Client进行虚拟机 P2V提示 权限不足,无法连接\\ip\admin$的解决方法集锦 步骤一 检查 远程桌面到&quo ...

  8. Linux执行.sh文件,提示No such file or directory的问题的解决方法

    亲测有效:http://www.jb51.net/LINUXjishu/56395.html Linux执行.sh文件,提示No such file or directory的问题的解决方法 在win ...

  9. php 字符串中的\n换行符无效、不能换行的解决方法

    php 字符串中的\n换行符无效.不能换行的解决方法 程序的中的换行符\n会直接输出,无法正确换行,解决方法是把单引号改为双引号 aa

  10. 使用phpExcelReader操作excel提示The filename *.xls is not readable的详细解决方法

    使用phpExcelReader操作excel提示The filename *.xls is not readable的详细解决方法 是xls文件有问题,另存为新的xls文件,然后导入就不会有这个问题

随机推荐

  1. C# 窗体相关知识

    一  窗体 固定窗体大小,并不能最大/最小化: FormBorderStyle属性设置为:FixedSingleMaximizeBox = falseMinimizeBox = false都是在For ...

  2. .NET周报【11月第1期 2022-11-07】

    国内文章 开源·安全·赋能 - .NET Conf China 2022 https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg .NET Conf Chi ...

  3. DNS 解析 prefeath

    本文将详细介绍DNS预解析prefetch的主要内容 概述 DNS(Domain Name System, 域名系统),是域名和IP地址相互映射的一个分布式数据库.DNS 查询就是将域名转换成 IP ...

  4. Helm干货!速度围观!

    最近个人学习Helm,感觉Helm的功能很强大!分享一些干货给大家吧,希望有所帮助! 基本概念 Chart 一个Helm包,包含在K8S集群内,运行一个应用,工具或者服务所需要的所有的资源定义,类似于 ...

  5. PHP 模仿表单提交

    function curl($url,$data,$headers){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_UR ...

  6. 关于linux上strongswan客户端的配置

    前言 这几天回家了,想连学校的vpn, 学校vpn用的是strongswan的EAP认证(不需要证书什么的),手机上直接用软件连接就可以了,windows也是内置了这个协议,无奈我用的是linux m ...

  7. 面试官:介绍一下 Redis 三种集群模式

    小码今天去面试. 面试官:给我介绍一下Redis集群, 小码:啊,平时开发用的都是单机Redis,没怎么用过集群了. 面试官:好的,出门右转不谢. 小码内心困惑:在小公司业务量也不大,单机的 Redi ...

  8. Docker使用Calico配置网络模式

    一.Calico介绍 Calico是一种容器之间互通的网络方案,在虚拟化平台中,比如OpenStack.Docker等都需要实现workloads之间互连,但同时也需要对容器做隔离控制,就像在Inte ...

  9. day07 方法重写&super、this、static关键字&JVM的类加载顺序题目

    day07 方法重写 1)重写发生在子父类当中 2)方法名.参数列表.返回值均相同 3)重写的方法,方法体或者访问控制修饰符不同 4)子类方法的访问权限不能缩小,比如父类是int,子类重写权限不能是b ...

  10. 基于人人框架--本地项目部署流程(前后端+IIS上传功能)

    基于人人框架--本地项目部署流程(前后端+IIS上传功能) 一.环境要求 JAVA环境 JDK:1.8 IIS 本地电脑必须要有IIS服务 MySQL 数据库采用MySQL数据库,安装版本为 5.7. ...