一、Selenium介绍

Selenium是一个Web开源自动化测试框架,具有页面级操作、模拟用户真实操作、API从系统层面触发事件等特点。

1.版本

Selenium 1.0 

Sever/Client工作方式,可在本地或远程机器上运行基于JS注入的Case底层。

为什么一定要用代理服务器的模式?答案是同源策略,它是由Netscape 提出的一个著名的安全策略,现在所有可支持JavaScript 的浏览器都在使用这个策略。

Selenium 2.0

Selenium 2.0基于Selenium 1.0(即JavaScript ),并结合其WebDriver模拟用户的真实操作。WebDriver原生绑定浏览器,绕过浏览器安全模型。它有很好的处理Ajax的能力,并且支持多种浏览器(如Safari、IE、Firefox、Chrome等),可以运行在多种操作系统上。目前,很多人在使用Selenium 2.0。

Selenium 3.0

Selenium3.0在Selenium 2.0的基础上做了更多的改进,JDK的版本必须在1.8以上,geckodriver驱动必须在Firefox 48版本以上。该版本支持苹果公司的Safari浏览器,去掉了Selenium RC,全部采用了WebDriver等。总之,Selenium 3.0支持的原生驱动更加丰富。

2.元素定位及用例编写

(1)多种方式定位并控制页面元素。掌握Web元素定位方式id namelinktext xpath tag css。

(2)自动化测试用例。通过元素定位和步骤依次封装成自动化测试用例。

3.运行时注意驱动与浏览器的版本

默认为谷歌(Chrome)驱动,

如chromedriver.exe、IEDriverServer.exe。

注意,版本需要兼容JDK 1.7以及IE 8~IE 10,如是IE 11及以上,需要更新驱动才能支持,请大家自行研究更新版本驱动或采用旧版本浏览器。

二、 环境搭建

从https://pypi.python.org/pypi/selenium/#downloads selenium-3.8.0.tar.gz解压缩,切换到相应目录python setup.py install。

从https://pypi.python.org/pypi/configparser/configparser-3.5.0.tar.gz 解压缩,切换到相应目录pyton setup.py install。

安装谷歌浏览器,选择默认安装。

安装火狐驱动:chromedriver.exe,将文件到相应的正确的代码目录下。

设置环境变量

C:\Users\zh\Desktop\software\autotestweb\src\chromedriver.exe。

三、Web自动化测试源码实例演练

web自动化测试实例-实现百度web中搜索“Python测试开发社区

通过按F12键,以及左上角的箭头,单击要捕获的元素,就能定位到源码并查看该元素的信息,比如id、type、name、class等。搜索文本捕获到文本框id为kw,百度一下按钮捕获到id为su,如图1和图2所示。

1.功能描述

引入Selenium的Webdriver驱动包,进入主函数,定义为谷歌浏览器驱动,取百度网页,查找控件元素id为kw的文本框,Sendkeys输入软件自动化测试开发,查找控件元素id为su的按钮,单击“搜索”按钮,结束。

▲图1

▲图2

百度web中搜索“Python测试开发社区”,

程序清单:

文件名webauto_testcase1.py


#-*- coding: UTF-8 -*-

import time

from selenium import webdriver

if __name__ == '__main__':

globaldriver

  driver =webdriver.Chrome()

driver.get("http://www.baidu.com")

time.sleep(1)

driver.find_element_by_id('kw').send_keys('Python测试开发社区')

time.sleep(1)

driver.find_element_by_id('su').click()

time.sleep(5)

driver.quit()

print ('Done!')

time.sleep(1)

演示视频:

你是不是觉得so easy呢?

Selenium自动化测试实例-基于python的更多相关文章

  1. 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门

    第1章  Selenium自动化测试框架入门 1.1  Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...

  2. Appium移动自动化测试实例-基于python

    一.环境搭建 安装Android 环境变量.SDK.Android API.ADT等. 步骤1  安装SDK:下载地址为https://pan.baidu.com/s/1mi6PT9m.如提示错误:' ...

  3. 《Selenium自动化测试实战:基于Python》之 Python与Selenium环境的搭建

    第2章  Python与Selenium环境的搭建 购买链接:  京东:https://item.jd.com/13123910.html  当当:http://product.dangdang.co ...

  4. 《Selenium自动化测试实战:基于Python》之 Selenium IDE插件的安装与使用

    第3章  Selenium IDE插件的安装与使用 京东:https://item.jd.com/13123910.html 当当:http://product.dangdang.com/292045 ...

  5. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  6. selenium2自动化测试实战--基于Python语言

    自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...

  7. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

  8. 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725

    如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python ...

  9. 关于《Selenium3自动化测试实战--基于python语言》

    2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目 ...

随机推荐

  1. 884A. Book Reading#抽空学习好孩子(模拟)

    题目出处:http://codeforces.com/problemset/problem/884/A 题目大意:每天时间分两部分,工作和学习,工作优先,闲暇读书,问第几天读完 #include< ...

  2. 14 微服务电商【黑马乐优商城】:day03-springcloud(Hystix,Feign)

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...

  3. 600E - Lomsat gelral(找子树多颜色问题)(入门)

    题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和 ...

  4. lambda concurrent List<Map> to Map

    Object c = Stream.of( CompletableFuture.supplyAsync(() -> { Map m = new HashMap(); try { Thread.s ...

  5. Java BigInteger详解

    BigInteger概述 可用于无限大的整数计算 所在的包 java.math.BigInteger; 构造函数 public BigInteger(String val) 成员函数 比较大小函数 p ...

  6. vue 利用axios请求接口下载excel

    一般有三种方法: 方法一: 通过a标签下载 // href为文件的存储路径或者地址,download为问文件名 <a href="/images/download.jpg" ...

  7. centos7_安装jira7

    centos7 安装jira7 参考文档:http://www.cnblogs.com/kevingrace/p/7608813.html 1.准备环境 centos7 memory:8G stora ...

  8. 深度优先搜索(DFS)和广度优先搜索(BFS)求解迷宫问题

    用下面这个简单的迷宫图作为例子: OXXXXXXX OOOOOXXX XOXXOOOX XOXXOXXO XOXXXXXX XOXXOOOX XOOOOXOO XXXXXXXO O为通路,X为障碍物. ...

  9. 38)PHP,获取数据库数据并在html中显示(晋级5)

    还有一个加了单例模式的,在第52个. 首先是我的文件关系: 我的主php文件是index.php,我的配置文件php是BBB.php  我的数据库操作文件是  b.php    我的html文件是lo ...

  10. 吴裕雄--天生自然python机器学习:朴素贝叶斯算法

    分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同 时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础 在计算 特征值取某个值的概率时涉及了一些概率知识,在那里我们先 ...