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

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

最新文章

  1. Yeoman 学习笔记
  2. Java设计模式之模板模式(Template )
  3. 【leetcode】Two Sum
  4. Android开发教程:shape和selector的结合使用
  5. JSP知识
  6. jquery中ajax方法返回的三种数据类型:text、json、xml;
  7. js 字符串转化成数字
  8. hdu----(4301)Divide Chocolate(状态打表)
  9. cojs 榴莲 题解报告
  10. WIN10 搜索功能无法搜索本地应用
  11. 质因数分解的rho以及miller-rabin
  12. Java之进程与线程
  13. BZOJ 2986: Non-Squarefree Numbers [容斥原理 二分]
  14. 用user-selection实现让页面上的内容不能被选中
  15. CoordinatorLayout 自定义Behavior并不难,由简到难手把手带你撸三款!
  16. Optimizing Java笔记:高级垃圾回收
  17. 论文笔记:Fast(er) RCNN
  18. Django Form表单组件
  19. 一些简单的ajax的特点,方法、属性。以及ajax的创建 请求
  20. JS性能优化 之 文档片段 createDocumentFragment

热门文章

  1. chrome工具调试
  2. 永久解决Ubuntu下adb权限问题
  3. docker+nginx 安装部署修改资源目录配置文件和容器端口信息
  4. EdgeCore初学习
  5. KafkaOffsetMonitor:监控消费者和延迟的队列
  6. i春秋include
  7. Java Web中requset,session,application 的作用域及区别
  8. Day31面向对象之魔法方法
  9. 浏览器内存漫游解决方案(js逆向)
  10. elasticsearch global 、 filters 和 cardinality 聚合