当前位置 博文首页 > 猎摘互联网软件测试业界技术文章专用博客:python+selenium自动

    猎摘互联网软件测试业界技术文章专用博客:python+selenium自动

    作者:[db:作者] 时间:2021-09-21 15:02

    1.1 环境搭建

    1.1.1 selenium简介
    Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。
    Selenium的发展经历了三个阶段,第一个阶段,也就是selenium1的时代,在运行selenium1.0程序之前,我们得先启动selenium server端(selenium remote control),我们简称RC。RC主要包括三个部分:launcher,http proxy,selenium core。其中selenium core是被selenium server嵌入到浏览器页面中的,selenium core内部是一堆javascript函数构成,通过调用这些函数来实现对浏览器的各种操作。
    很显然比较繁琐,这并不是最佳自动化解决方案,于是后来有了webdriver。
    selenium2 的时代合并了webdriver,也就是我们通常说的selenium,selenium2是默认支持Firefox浏览器的,这点非常方便。

    当然也支持其他更多浏览器,Ie和chrome浏览器需要下载驱动包,并添加到环境变量下。

    selenium3 是2016年10月份发布的,并且现在默认安装都是selenium3了,selenium3在selenium2的基础上做了一些调整,最明显的区别 就是 selenium2对Firefox的支持最高只支持46及以下版本。selenium3可以支持47以上版本,但是需要下载 geckodriver.exe驱动,并添加到环境变量path下。


    接下来的内容以selenium2为主。


    ************环境组合**************************
    初学者最佳环境:python2.7+selenium2+Firefox46以下版本
    喜欢尝新的环境:python3.6+selenium3+Firefox47以上版本
    *********************************************
    小编的环境:
    windows10 64位

    python 2.7.12

    selenium 2.53.6

    firefox 44

    ?

    1.1.2 python安装
    1.小编的电脑操作系统:win10 64位系统
    2.下载Python安装包,选择2.7版本和3.6版本都可以
    (下面的教程,两个版本会一起讲,所以不用担心版本问题)
    官网下载地址:https://www.python.org/

    ?

    ?3.Python安装,双击傻瓜式安装(别安装在c盘,用英文路径,不要有空格),安装时候选中下方红色框框,如果这一步成功,1.1.3环境变量这一步可以省略。

    ?

    1.1.3 环境变量
    1.安装完成后,看下这个目录D:\python\Scripts,有没pip.exe和easy_install.exe(一般都有,没有的话得卸载重新安装一次了)

    2.将D:\python和D:\python\Scripts(注意这两个是复制自己电脑上的路径),添加到环境变量path下。
    D:\python;D:\python\Scripts;(注意带上英文的分号)

    ?

    ?

    1.1.4 安装selenium
    ? 1.打开cmd窗口输入:pip
    (如果出现其它提示请检查上面几步,确认无误后出现Did not provide a command,看1.3解决pip异常这篇)

    ?

    ? 2.cmd输入指令安装在线安装selenium
    >pip install selenium==2.53.6
    (注意:首次装一定要看到进度100%完成,如果中途失败了,重新输入指令安装,直到看到100%完成为止)

    ?

    ?

    1.1.5 验证selenium
    ?如何才能知道selenium正确安装好了呢?
    ?1.确保电脑上安装了Firefox浏览器46以下版本
    ?cmd窗口输入如下指令
    ??>python
    ? >from selenium import webdriver
    ??>webdriver.Firefox()
    ?3.如果能启动浏览器,说明环境安装OK。

    (启动不成功,说明没认真看文档,卸载了重新来一次)
    1.1.6 浏览器
    ? 1.如果你打算用Firefox浏览器,那么千万别安装47以上版本(selenium2不兼容47以上)
    ??2.如果你打算用Ie或Chrome浏览器,需要先下载浏览器驱动,将驱动文件放到python根目录。

    ?

    如果有的已经安装过3.0的版本,启动firefox时候会报错,下一章讲如何使用pip降级selenium版本
    1.1.7 firefox历史版本
    firefox历年版本的官方镜像地址:
    https://download-installer.cdn.mozilla.net/pub/firefox/releases/?

    1.2 pip降级selenium3.0

    selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH
    selenium默默的升级到了3.0,然而网上的教程都是基于selenium2的,最近有不少小伙伴踩坑了,决定有必要出这一篇,帮助刚入门的小伙伴们解决好环境问题。
    selenium+python环境搭配:
    selenium2+firefox46以下版本(无需驱动包,firefox喜欢偷偷升级,你懂的)
    selenium3+firefox46以上版本(必须下载驱动:geckodriver.exe,且添加到环境变量)
    1.2.1 遇到问题
    ? ? 1.安装完selenium后,再cmd进入python环境
    ? ? 2.从selenium导入webdriver

    ? ? 3.启动Firefox浏览器
    >>python
    >>from selenium import webdriver
    >>webdriver.Firefox()
    然后出现以下异常:'geckodriver' executable needs to be in PATH

    ?

    1.2.2 解决方案
    ? ? 1.'geckodriver' executable needs to be inPATH,这句话意思就是说,geckodriver.exe的驱动文件需要添加到环境变量下,

    selenium2是默认支持firefox的,不需要驱动包,但是,selenium3需要驱动包的支持了,于是就有了上面的问题
    ? ?2.解决办法一:继续使用selenium3,去下载驱动包,然后加到环境变量下(不推荐此办法,因为解决完这个问题后,后面还会接着有其它问题)
    ? ?3.解决办法二:selenium3降级到selenium2(接下来会介绍)
    ?
    1.2.3 检查pip环境
    ? ? 1.打开cmd,输入pip,检查pip环境是否正常
    >>pip

    ??? 2.如果输入pip出现提示:Did not provide a command 说明pip环境有问题,临时解决办法,输入pip时候加上后缀pip.exe就可以了,具体原因看下一篇解决办法。
    1.2.4 pip查看selenium版本号
    ? ? 1.打开cmd,输入pip show selenium
    >>pip show selenium
    ? ?2.看红色区域位置版本号显示:2.53.0,显示的就是当前使用的版本号

    (如果你这里显示的是3.0开头,就需要接下来步骤了)

    ?

    ?

    1.2.5 pip降级selenium
    ??? 1.为了避免与之前安装的selenium版本冲突,先找到selenium3.0目录:python\Lib\site-packages目录
    把里面selenium开头的文件全部删除就可以了。python所有的第三方包都在这个目录下面。

    ?

    ? ?? 2.打开cmd,输入pip install selenium==2.53.6(注意是两个==,中间不要留空格,这里推荐2.53.6的版本)
    >>pip install selenium==2.53.6

    ?

    1.2.6 升级pip版本
    ? ? 1.在使用pip过程中如果出现下方红色区域字样,就是说pip版本过低了,建议升级
    ? ? 2.如何升级pip呢?看最后一句话:python -m pip install --upgrade pip

    ?

    ? ?3.把上面对应的提示照着敲一遍就可以了

    ?

    1.3 解决pip使用异常问题

    1.3.1 pip出现异常
    有一小部分童鞋在打开cmd输入pip后出现下面情况:Didnot provide a command

    Did not provide a command?这是什么鬼?

    正常情况应该是酱紫

    ?

    1.3.2 解决办法
    1.pip是一个.exe的可执行文件,在cmd输入pip.exe就可以解决了。

    ?

    2.所以在后面的安装指令中都需要带上后缀,那么问题来了,为什么会出现这种情况,如何彻底解决?
    1.3.3 配置环境变量
    1.主要原因是环境变量的PATHEXT里面缺少.EXE的文件名
    2.在PATHEXT下编辑后面加上;.EXE(注意分号是英文的)

    ?

    3.环境变量配置好了后,关掉cmd,重新打开输入pip试试(要是这一步还不能解决,继续往下看)
    1.3.4 必杀技
    1.找到pip所在的文件目录打开

    ?

    2.在文件夹地址栏输入cmd,回车。

    ?然后在打开的窗口输入pip(或pip.exe)试试吧

    1.3.5 绝杀技能
    打开cmd(快捷键:win+r),cd到pip所在的目录,如D:\test\python2\Scripts
    >d:
    >cd d:/test/python2/Scripts
    >pip

    ?

    ?(要是看到这里,还没解决,你这台电脑可以砸了!!!)

    1.4 Chrome浏览器

    前言
    selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的。
    ?#############最佳环境搭配#####################
    小编环境:selenium2.53.6+Chrome版本V49.0+chromedriverv2.22
    (根据小编经验selenium2搭配Chrome版本40-50比较好,版本太高了会各种奇葩问题的)
    ###########################################
    1.4.1 Chrome遇到问题
    1.如果在启动chrome浏览器时候,出现如下界面,无法打开网址,那么首先恭喜你,踩到了坑,接下来的内容或许对你有所帮助。

    >># coding:utf-8
    >>from selenium import webdriver
    >>driver = webdriver.Chrome()
    >>driver.get("http://www.cnblogs.com/yoyoketang/")

    ?

    1.4.2 查看版本号

    1.查看Chrome版本号,设置>关于,查出来版本号是49.0

    ?

    2.查看chromedriver.exe版本号,双击这个文件就可以了,查出来版本号是V2.9

    3.很显然是chromedriver的版本号过低了,于是可以找个更高级的版本:V2.22
    ?
    1.4.3 chromedriver
    1.确保chromedriver.exe文件在path路径下,这里我放到Python的根目录了(python根目录已配置到path了)

    ?

    2.确保驱动文件名称是chromedriver.exe,如果名称后面带版本号的,改下文件名称就行。
    3.Chrome版本V49.0+chromedriverv2.22
    ?
    1.4.4 各版本匹配表

    chromedriver版本??? 支持的Chrome版本
    v2.29 ? ? ? ? ? ? ? ? v56-58
    v2.28? ? ? ? ? ? ? ? ?v55-57
    v2.27?? ? ? ? ? ? ? ? v54-56
    v2.26? ? ? ? ? ? ? ? ?v53-55
    v2.25? ? ? ? ? ? ? ? ?v53-55
    v2.24 ? ? ? ? ? ? ? ? v52-53
    v2.23 ?? ? ? ? ? ? ? ?v51-53
    v2.22 ?? ? ? ? ? ? ? ?v49-52
    v2.21 ?? ? ? ? ? ? ? ?v46-50
    v2.20 ? ? ? ? ? ? ? ? v43-48
    v2.19 ? ? ? ? ? ? ? ? v43-47

    v2.18 ? ? ? ? ? ? ? ? v43-46
    v2.17 ? ? ? ? ? ? ? ? v42-43
    v2.13 ? ? ? ? ? ? ? ? v42-45
    v2.15 ? ? ? ? ? ? ? ? v40-43
    v2.14 ? ? ? ? ? ? ? ? v39-42
    v2.13 ? ? ? ? ? ? ? ?v38-41
    v2.12 ? ? ? ? ? ? ? ?v36-40
    v2.11 ? ? ? ? ? ? ? ?v36-40
    v2.10 ? ? ? ? ? ? ? ?v33-36
    v2.9 ? ? ? ? ? ? ? ? ?v31-34
    v2.8 ? ? ? ? ? ? ? ? ?v30-33
    v2.7 ? ? ? ? ? ? ? ? ?v30-33

    v2.6 ? ? ? ? ? ? ? ? ?v29-32
    v2.5 ? ? ? ? ? ? ? ? ?v29-32
    v2.4 ? ? ? ? ? ? ? ? ?v29-32

    Chrome浏览器的chromedriver版本驱动大全,下载地址:
    http://chromedriver.storage.googleapis.com/index.html

    IE浏览器的IEdriver版本驱动大全,下载地址:
    http://selenium-release.storage.googleapis.com/index.html

    ?

    ?

    1.5 pycharm使用

    前言????
    在写脚本之前,先要找个顺手的写脚本工具。python是一门解释性编程语言,所以一般把写python的工具叫解释器。写python脚本的工具很多,小编这里就不一一列举的,只要自己用着顺手就可以的,如果你还没有选好解释器,小编这里推荐pycharm。
    ???? 在安装pycharm后,有一些小伙伴不会破解,这里小编还是推荐大家买正版的。当然,如果你不想付费,想破解pycharm,也是很容易的事情,这里小编列举几种破解办法。前提是你要先下载pycharm安装包,安装包可以去官网http://www.jetbrains.com/pycharm/下载最新版。
    1.5.1 pycharm安装
    方法一:
    ????1.在注册界面,选择License serve。填入http://idea.lanyus.com/71?
    ????2.点击ok