Selenium环境配置

如果你做过 Web 测试的工作,那么你应该明白 Web 测试中最重要的一部分工作就是自动化测试。自动化测试,顾名思义就是让浏览器自动运行,而无需手动操作。这和我们爬虫工作原理有些相似,我们爬虫也需要让浏览器运行网址来获取我们需要的内容。所以我们今天来介绍一款自动化测试工具—— Selenium ,并将它运用到爬虫中来。

什么是 Selenium

我们首先来看看百度上搜索 selenium 的结果:

baidu_selenium

它的官网标题后面副标题是“Web Browser Automation”,什么意思?直译过来就是 Web 浏览器自动化,很直白很明显对不对?

我们再来看看官网的定义:

Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) be automated as well.

Selenium has the support of some of the largest browser vendors who have taken (or are taking) steps to make Selenium a native part of their browser. It is also the core technology in countless other browser automation tools, APIs and frameworks.

从这两段定义来看,大意就是 Selenium 的初衷是为 Web 应用自动化测试而生,但是它的用处不限于此,怎么使用完全取决于你。你可以用它来自动化处理一些基于 Web 的任务。各大浏览器厂商也将 Selenium 嵌入到它们的浏览器中了。 Selenium 也广泛应用于其他的自动化工具、 API 和框架中。

Selenium 的环境搭建

安装 Selenium 工具包

跟其他 Python 工具包一样,有两种安装方式:
一种是命令行安装:

pip install -U selenium

另一种是下载 Python 安装包文件,然后再手动安装。下载地址为 https://pypi.org/project/selenium/#files ,下载后解压压缩包,然后用命令行进入该压缩包的根目录,输入命令进行安装:

python setup.py install

个人还是比较推荐前一种安装方式,简单省心,一个命令就搞定。

安装浏览器驱动

对于 Selenium 3,要使用其功能,我们需要安装浏览器驱动。每个浏览器厂家都有自己的驱动,本文以 Chrome 浏览器为例,向大家介绍怎么安装浏览器驱动。

Chrome 的每个浏览器版本都会有对应版本的驱动,
所以我们第一步是要知道我们浏览器的版本。 Chrome 浏览器的版本信息在“设置->关于 Chrome”里面可以找到,具体可以参照下图:

[图片上传失败...(image-d455fa-1570870550720)]

找到浏览器版本后,我们到 http://chromedriver.storage.googleapis.com/index.html 下载对应的 chromedriver 。以前的老版本都是2.x的版本,大家需要到网上搜一下版本对应关系。 Chrome 从版本70之后就很好找了,所以建议大家将 Chrome 版本升级至最新的,驱动也好找些。

进入每个具体的 chromedriver 版本目录之后,我们可以看到下面这样的页面:

chromedriver-version

大家根据自己的操作系统,选择对应的文件下载即可。

下载完成后,解压压缩包,会得到 chromedriver 的驱动。不同的操作系统有不同的安装方式:

Windows 操作系统的安装关键步骤是:

① 把下载成功的驱动包chromedriver.exe解压出来,放在谷歌浏览器安装目录下的Application目录中(鼠标右键点击谷歌图标,选择属性,可在起始位置查看谷歌目录)。

② 然后配置系统环境变量在path中添加chromedriver.exe的路径。

③ 将chromedriver.exe放在C盘中windows文件夹下的SysWOW64,如果是32位系统则放在System32中。

笔者用的是 Mac 操作系统, Mac 系统安装驱动在网上搜索可以搜到两种方法:第一种是将 chromedriver 复制到 /usr/bin 目录下,
另一种是将 chromedriver 复制到 /usr/local/bin 目录下。

笔者采取的是第二种方案,因为第一种方案存在一个问题: Mac 对 /usr/bin 这个路径有权限的限制,即使你是 root 用户,也无法正常移动文件过去,这时,需关闭 Mac 的 SIP 方法 ,具体操作可参考:https://jingyan.baidu.com/article/e5c39bf5d13bf939d76033cf.html

至于网上说的将 chromedriver 驱动文件复制到 /usr/bin 或者 /usr/local/bin 后,需要在环境变量里面配置相应的目录,笔者试过不配置也没问题,当然配置了也不会出问题,所以为了省事,可以不用配置。

接下来,我们在命令行输入如下命令就可以查看我们的 chromedriver 版本了:

chromedriver --version

返回的版本号信息:

ChromeDriver 78.0.3904.11 (eaaae9de6b8999773fa33f92ce1e1bbe294437cf-refs/branch-heads/3904@{#86})

看到这个就表示 Chrome 驱动安装成功了。

现在我们来用最简单的语句测试一下,看能不能运行 Selenium:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')

我们会看到弹出一个浏览器,闪了一下就消失了,同时在命令行有报错信息,报错信息的最后一行是:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 78

大意就是目前的 chromedriver 版本只支持 78版本的 Chrome 浏览器,直白点就是浏览器驱动和浏览器的版本不匹配,这里我的浏览器是77版本,下载的驱动是78版本,所以导致报错。

下载77版本的驱动,替换掉 /usr/local/bin 目录下的驱动,然后重新运行上面的程序,我们会发现弹出来 Chrome 浏览器窗口,并打开了百度首页,这就代表我们的程序正常运行了,我们的环境配置成功了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容