• 篇5 python自动化测试应用Selenium环境篇


    篇5                            python自动化测试应用-Selenium环境篇

                                                                                        --lamecho

    1.1概要

           大家好!我是lamecho(辣么丑),从本篇开始我将开始介绍python如何通过selenium来进行web页面自动化测试,我的一贯原则实战,有什么坑我会替大家埋上。

           为什么是selenium?

           记得最早接触web自动化测试,大家一定会想到QTP,在学着录制完订机票的网站后也算初步认识了什么是网页的自动化测试实现。基本的思路也就是模拟点击,然后对脚本回放。而selenium是什么呢,看看官网的定义:Selenium automates browsers其实也是万变不离其宗,本身selenium有自己的ide,大家直接下载当作一个工具来学习使用类似QTP那样。但是今天我们要学习的是通过python调用selenium的框架API来实现网页的自动化实现,这样完成的脚本更具灵活性,开发符合测试项目的自动化测试脚本。

    1.2 环境篇—环境准备

           如同python在使用appium的实现一样,第一是本机测试环境的搭建。但是这里明显会比搭建appium简单很多,但是也会有一些地方大家需要注意。

           1.Python环境

                  Python的安装这里就不多说了。具体方法可参考appium的文章

           2.selenium库文件安装

                  安装同样有两种方式:

    1.pip install selenium

    2.selenium-3.0.2.tar.gz下载安装(推荐这样)官网链接下载地址:

    https://pypi.python.org/pypi/selenium/。具体方法可参考appium的文章

    前两步环境都完成后,在python脚本中加入

    from selenium import webdriver

    运行成功表示我们可以使用selenium了。

           3.浏览器安装

    什么浏览器?可能大家会有疑问,我的电脑上安装的有浏览器,ie,chrome,firefox都有,这一步应该省略了吧?大家不妨先运行一下下面的脚本看看。

    # -*-encoding:utf-8 -*-

    from selenium import webdriver

    browser=webdriver.Firefox()

    browser.maximize_window()

    browser.get("https://www.baidu.com/")

    els=browser.find_elements_by_tag_name('a')

    for i in els:

        if i.text==u'登录':

            i.click()

            break

    browser.implicitly_wait(10)

    browser.find_element_by_id('TANGRAM__PSP_8__userName').send_keys('test')

    如果执行结果是火狐浏览器打开了baidu搜索并在登录框中输入了test表示你的环境是ok的。如果你的浏览器压根没调起来或者浏览器打开了但是没有打开baidu搜索,那么表明你的环境还是有问题,如果正常的打开了baidu搜索页面但是没有点击登录那就是我的脚本写的有问题了。说了这么多为什么把第三步讲的这么重要呢,因为selenium使用的环境搭建是非常简单的(前两步基本就算是搭建完了,网络上很多文章也是这样介绍的,我们既然是实战,就要还原真实情况),但是也是存在坑的,坑在哪里呢,坑就在第三步这里。简单说我们要想脚本能把浏览器打开并执行模拟动作,要保证两点:1.对应浏览器的driver;2.浏览器的版本要对。比如说我们的Firefox火狐浏览器,它的driver是geckodriver.exe这个文件,Chrome谷歌浏览的对应的chromedriver.exe这个文件。第二个要注意的是浏览器的版本,不负责任的说你要用最新的火狐版本或是谷歌肯定是跑不起来的(所以这里要提醒大家,环境装好后,在后期如果有浏览器提醒你更新版本,千万不要更新!!!!)。

    我拿chrome浏览器举例:

    chromedriver.exe下载地址:

    http://npm.taobao.org/mirrors/chromedriver/

    大家可以看到chromedriver.exe的版本最新的目前是2.28了,而浏览器的版本我们要用哪个呢,再往下看

    chrome版本对应关系:

    v2.24      v52-54

    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

    上面是chromedriver版本与Chrome版本的对应关系,我本机的环境是Chrome54,chromedriver的版本我用的是Driver info: chromedriver=2.24.417431。好了我们准备好浏览器版本及对应的driver文件,最后把chromedriver放到我们谷歌浏览器的根目录下,我的路径是C:\Program Files (x86)\Google\Chrome\Application。

    这样通过这三步我们才算把环境准备好,大家再试试下方的脚本,看看能不能顺利的将chrome浏览器打开。

    # -*-encoding:utf-8 -*-

    from selenium import webdriver

    chromedriver="C:\ProgramFiles(x86)\Google\Chrome\Application\chromedriver.exe"

    browser=webdriver.Chrome(chromedriver)

    browser.maximize_window()

    browser.get("https://www.baidu.com/")

    1.3 环境篇—结束

    至此,我们的selenium测试环境就安装完了。下一篇,将开始介绍web页面的元素查找,同样会以实际的一个网站操作作为例子。

    原创文章,转载请注明出处。新浪微博搜索 “lamecho好棒” 欢迎大家来撩。

    微博:https://weibo.com/u/6017986584

    博客:http://blog.sina.com.cn/u/6017986584

     

  • 相关阅读:
    绕开安全沙箱跨域调用Swf中的方法
    使用Eclipse运行Java代码调用JDBC读写MySQL中文变成问号的终极解决办法
    Resource is out of sync with the file system的解决办法
    DBUnit入门
    Eclipse 中JSP文件出现String cannot be resolved as a type的解决办法
    Windows中cmd操作mysql
    windows中 关闭 启动 重启mysql的方法
    Mysql中文输入出现1366错误的解决办法
    How to implement collapse all in windows tree structure such as regedit
    word2010 2007中去掉页眉上的横线
  • 原文地址:https://www.cnblogs.com/lamecho/p/6600431.html
Copyright © 2020-2023  润新知