Selenium自动化测试实例-基于python
一、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的更多相关文章
- 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门
第1章 Selenium自动化测试框架入门 1.1 Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...
- Appium移动自动化测试实例-基于python
一.环境搭建 安装Android 环境变量.SDK.Android API.ADT等. 步骤1 安装SDK:下载地址为https://pan.baidu.com/s/1mi6PT9m.如提示错误:' ...
- 《Selenium自动化测试实战:基于Python》之 Python与Selenium环境的搭建
第2章 Python与Selenium环境的搭建 购买链接: 京东:https://item.jd.com/13123910.html 当当:http://product.dangdang.co ...
- 《Selenium自动化测试实战:基于Python》之 Selenium IDE插件的安装与使用
第3章 Selenium IDE插件的安装与使用 京东:https://item.jd.com/13123910.html 当当:http://product.dangdang.com/292045 ...
- 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法
虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...
- selenium2自动化测试实战--基于Python语言
自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...
- 《Selenium2自动化测试实战--基于Python语言》 --即将面市
发展历程: <selenium_webdriver(python)第一版> 将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...
- 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python ...
- 关于《Selenium3自动化测试实战--基于python语言》
2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目 ...
随机推荐
- 配对t检验
- Methyl-SeqDNA的甲基化图谱|DNase I-Seq|ChIP-Seq|3C-Seq|
生物医学大数据 Methyl-SeqDNA的甲基化图谱 DNase I-Seq全基因组染色质DNA的开放程度.非基因编码区的调控元件的分布 DNase I高敏感位点:基因处于转录活性状态时,其染色质结 ...
- oracle中带参存储过程的使用
Oracle中存储过程带参分为:输入参数(in)和输出参数(out) 例如: create or replace procedure out_test(v_user in emp.user_name% ...
- 八皇后问题 2n皇后问题
Description 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. 对于某 ...
- 吴裕雄--天生自然 PYTHON3开发学习:JSON 数据解析
import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoo ...
- Spring Boot使用Liquibase最佳实践
Liquibase问题 随着项目的发展,一个项目中的代码量会非常庞大,同时数据库表也会错综复杂.如果一个项目使用了Liquibase对数据库结构进行管理,越来越多的问题会浮现出来. ChangeSet ...
- java 之断言
今天用idea的智能提示冒出一个assert关键字,愣是没看懂!!!还是太菜了.上网查了一下,这个关键字是断言. 什么是断言? 我也说不清楚,反正就是对jvm的操作.java的错误分为两种,一种叫er ...
- [LC] 146. LRU Cache
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...
- scala编程(六)——函数式对象
Rational 的式样书 分数:rational number 是一种可以表达为比率 d n 的数字,这里的 n 和 d 是数字,其中 d 不能为零.n 被称作是分子:numerator,d 被称作 ...
- mac下停止和启动mysql命令
启动MySQL服务 sudo /usr/local/MYSQL/support-files/mysql.server start 停止MySQL服务 sudo /usr/local/mysql/s ...