美文网首页Selenium_博客已迁移Selenium 学习Selenium Python
使用selenium 和 chromedriver遇到的一些问题

使用selenium 和 chromedriver遇到的一些问题

作者: 小白猿 | 来源:发表于2017-03-17 15:26 被阅读18923次

前言

当准备开始爬虫的第三个练习爬取淘宝美食的时候,根据学习教程需要用到selenium(一款比较优秀的web端自动化测试框架),已经配合使用谷歌浏览器的驱动chromedriver。最开始我觉得只要下载了selenium安装包以后,然后在下载chromedriver(我以为是插件一类,安装在Google浏览器就行)就完事OK了,但是不然,现在简单记述一下我配置的过程,我的电脑系统是MacOS。

安装selenium

  • 我查到的安装方法大致分为两类,一种是用pip install -U selenium
    但是试了很多次都报错,以现在的水平也暂时看不太懂,
  • 转战另外一种安装方式,用homebrew,貌似最近几次我框架安装的时候遇到问题,brew install selenium-server-standalone,成功
  • 安装完以后一脸懵逼,根据提示,启动服务selenium-server -port 4444,启动了再根据提示0.0.0.0:4444,这个就是说外网也可以访问,然后我用本地访问,发现服务启动了,z至此selenium算是安装成功了
    selenium服务启动成功

pycharm以及Python环境遇到的坑

  • 当selenium安装结束以后,我在pycharm新建项目准备测试的时候,发现selenium无法导入一直爆红
    from selenium import webdriver),
    执行项目报错
    ImportError: No module named selenium
    后来反复查看确实是安装成功了,但是项目引用不到,忘记从哪里看到,有可能是路径问题,我看了一眼selenium的安装路径,也没问题
    brew info selenium-server-standalone

  • 后来经过反复查询发现在Python环境的site-packages目录下,确实没有selenium,然后去新建项目的时候发现系统中转了几套Python环境,但是系统自带的确实没有selenium


  • 最终在另外一套带有selenium的环境中新建项目,解决😓,顺便记录一下路径/usr/local/lib/python2.7/site-packages/seleniu

chromedriver的坑

  • 本想今天一天时间在学习一套爬虫项目,但是前边的坑坑坑就弄了一上午,下面说下chromedriver
  • 在前言中我觉得chromedriver是个插件,下载了就好,但是最后下载了然后写测试代码,理论上讲应该呼起一个谷歌浏览器,但是
from selenium import webdriver
dr = webdriver.Chrome()

报错信息如下
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
第一感觉是把chromedriver放下项目目录之下,项目能自动搜躲到,但是不能,后来经过百般Google,查到一个办法

import  os
chromedriver = "/usr/local/Cellar/chromedriver/2.28/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

依旧报错,后来又是偶然,发现chromedriver不单单是光下载就行了,也是一个单独的软件吧,所以依旧使用homebrew进行了安装brew install chromedriver,然后回看bin目录/usr/local/Cellar/chromedriver/2.28/bin,将其复制到上边的代码chromedriver =的后边,见证奇迹的时刻,运行终于呼起了Google浏览器

  • 然后还不算完,我觉得这样的路径肯定太特殊了,既然涉及到bin,
    那么一定有一种配置环境变量的方式,结果真有😁😁😁
vim ~/.bash_profile
          export PATH=$PATH:ChromeDriver目录(注意,是存放的目录,不是这个文件,就是bin的目录)
          :wq
          source ~/.bash_profile  

简言之,就是在 ~/.bash_profile 文件中加入
export PATH=$PATH:ChromeDriver的bin路径

  • OK,结束

相关文章

网友评论

  • e87bef6207ea:困扰了好久的问题解决了,多谢
    小白猿:@Rynder 好久没继续学习了,罪过
  • MissGreen:无数个赞飘过
  • 0372195430fe:同mac系统,把drive放到Chrome同一个文件夹就可以了啊,不用改变路径什么的
  • Abby_3b3a:我只想问usr/local/bin在哪?
    小白猿:@谁伴我闯荡_36e8 貌似是没有,最近iOS项目工期很紧,有段时间没看Python了,抱歉啊
    89707ce2f0c2:selenium.common.exceptions.WebDriverException: Message: unknown error: missing or invalid 'entry.level' 这个问题楼主遇到过吗
    小白猿:@Abby_3b3a 终端中输入 which selenium-server
  • Abby_3b3a:遇到了同样的问题,感谢楼主
  • 辛夷木筆望春花:最后那个加到 PATH 里的,只要保证 /usr/local/bin 在就行了,brew 会自动链接到这个目录。加一个带版本的目录反而不好,说不定更新了就没了。
  • df9cfd0bf058:没太看懂,我的目前还是有问题,请问题主,要怎么解决?
  • Day1_王老师:楼主 我还是不会 求帮助
    37247fddc138:帮忙,win下selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service
    小白猿:@玖i_b67b 不懂的地方先发一下,我最近打算在学习一下selenium
  • d30b592f8671:chromedriver必须放到bin目录下,我用pip3 install安装后path不对,用brew install更不行,被墙了……最后还是把pip3安装的mac版本的叫做ChromeDriver Darwin的改成chromedriver,再放在usr/local/bin下搞定……
    PokerFace_u:不用特地放到哪里,直接pip3 install 然后找到这个chromedriver-Darwin 也不用改名,把他的路径拷贝到export PATH=$PATH 这里,把$PATH换了就可以的吧!
    Abby_3b3a:我也用pip安装的,但是usr/local/bin在哪呢?
  • 6bf4671977ce:我的是驱动总有问题
    小白猿:@噢瑞利 报错可以发我一下,我查查看
    6bf4671977ce: @小白猿Windows
    小白猿:是mac电脑吗

本文标题:使用selenium 和 chromedriver遇到的一些问题

本文链接:https://www.haomeiwen.com/subject/tneenttx.html