简述-selenium对web实现自动化测试
首先,我是基于python进行对selenium操作和使用的,主要分为selenium的实现原理和selenium的操作这两大部分的简单分享(由于本人水平有限,仅做基础的概述和总结):
一、selenium原理(selenium1—>selenium2—>selenium3):
1.对于每个Selenium脚本的命令,都会创建一个HTTP请求并将其发送到浏览器驱动程序;
2.每一个命令的执行结果都会返回给自动化代码;
3.ChromeDirver创建session时打开了浏览器,Selenium代码和浏览器驱动的交互都根据ChromeDriver创建的sessionId。

版本的发展有selenium1—>selenium2—>selenium3:
| 版 本 | 版 本 特 点 | 版 本 功 能 |
| selenium1 | selenium IDE+selenium Grid+selenium RC(核心) | selenium RC包括selenium server和client libraries,selenium server用来操作浏览器,client libraries用来编写测试脚本,RC是执行浏览器中的JavaScript来翻译执行selenium脚本的代码命令。 |
| selenium2 | selenium1+webDriver(核心) | webDriver通过原生浏览器支持或者浏览器扩展来直接控制浏览器。 |
| selenium3 | selenium2-seleniumRC | 增加支持了一些系统和版本,主要还是webDriver。 |
二、selenium实现(基于python编写):
#coding:utf-8
from selenium import webdriver def main():
#设置参数访问url
url = 'http://www.zhilian.com/'
#创建webDriver对象,操作火狐浏览器
driver = webdriver.Firefox()
driver.get(url)
#隐形等待10S
implicitly_wait(10)
#定位元素,操作元素
driver.find_element_by_id('kw').send_keys('Python')
implicitly_wait(5)
driver.find_element_by_id('su').click()
#退出
driver.quit() if __name__ == "__main__":
main()
其中selenium中元素定位的方式有:
1.id 不重复(常用)
2.name 重复
3.class_name 类名
4.tag_name 标签名
5.link_text / partial_link_text 链接文本
6.Xpath XML元素路径(常用)
7.Css CSS选择器
其中selenium的一些常用操作:
(1)模拟鼠标的移动事件:
from selenium import webdriver
# 模拟鼠标的类包
from selenium.webdriver.common.action_chains import ActionChains
"""
鼠标对应操作方法:
context_click():右击事件 double_click():双击事件
drag_and_drop():拖动事件 move_to_element():鼠标停留在一个元素上
click_and_hold:按下鼠标左键停留在一个元素上
"""
# 导入键盘类
from selenium.webdriver.common.keys import Keys
"""
键盘对应对应的方法:
send_keys(Keys.BACK_SPACE) 退格键
send_keys(Keys.CONTRL,'a'): 全选,'c/v/x'分别复制粘贴剪切
send_keys(Keys.ENTER): 回车
"""
FireFox浏览器中有一款适合元素定位的插件firebug比较好用;
(2)处理多窗口和alter弹窗:
用到switch_to_alter();
---------------------------------------------------------------------------
只是个人平时的总结和分享,欢迎批评指正。
简述-selenium对web实现自动化测试的更多相关文章
- 使用python+selenium对web进行自动化测试
想用python代码,对web网页进行自动化测试 web自动化测试和手动测试的区别: 手动测试:通过手动去对网页的功能进行点点点 web自动化:可以通过代码,自动对网页点点点 首先,将python+s ...
- 转载 基于Selenium WebDriver的Web应用自动化测试
转载原地址: https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...
- Node.js结合Selenium做Web自动化测试
发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...
- Selenium的Web自动化测试(送源码)
8.1 Selenium自动化测试准备 1.Selenium介绍 Selenium是一个Web开源自动化测试框架,页面级操作,模拟用户真实操作,API从系统层面触发事件. Selenium 1.0 ...
- Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考
Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...
- web前端自动化测试/爬虫利器puppeteer介绍
web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很 ...
- 基于Selenium的web自动化框架
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...
- [原创]浅谈Web UI自动化测试
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
随机推荐
- 原生php分页的封装,只封装函数,可适用所有的表
<?php/** * 封装分页函数 * $table [字符串] 表名 * @$size [数字][每页显示条数] */function fenye($table, $size){ $link ...
- 请写出css中选择器(元素选择器、类选择器、id选择器)的优先级顺序,和当各种选择器组合时,优先级的计算规则是什么?
id选择器>类选择器>元素选择器 规则:选择器的权重值表述为4个部分,用0,0,0,0表示. 通配符*的权重为0,0,0,0 标签选择器.伪元素选择器的权重为0,0,0,1 类选择器.属性 ...
- ORM常用的13个方法
介绍一个可以以py脚本方式运行ORM操作的方法: 可在项目内新建个py文件,复制项目内manage.py文件中的以下代码: if __name__ == "__main__": o ...
- udev工作流程简图
- Guava 源码分析之Cache的实现原理
Guava 源码分析之Cache的实现原理 前言 Google 出的 Guava 是 Java 核心增强的库,应用非常广泛. 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Goog ...
- ASP.NET Core消息队列RabbitMQ基础入门实战演练
一.课程介绍 人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景.本次分享课程不 ...
- spark中的多目录输出及压缩
最近接到一个需求,需要对spark的结果分目录输出,百度之后找到了解决方案,大多都是spark 按照key分目录输出, 但是在文件当中,会把key也输出出来,在这里以key作为目录是想建hive表时把 ...
- Linux下常用目录有哪些?分别有什么作用?
/boot:这个目录是用来存放与系统启动相关的文件 /root:root用户的家目录 /bin:存放大部分的二进制的可执行文件,也就是大部分的linux命令. /tmp:这个文件目录一般是公共的,也就 ...
- ubuntu docker inflxudb(安装 使用 备份 还原 以及python编码) telegraf Grafana
inflxudb1.7.7 1.拉取最新的镜像 docker pull influxdb 2.运行实例: docker run -d --restart=always -p 8086:8086 -p ...
- java异常的嵌套和级联
一.分开捕获或者嵌套使用 我们先看看下面这段代码: public class Cal { public int div(int a, int b) { int result = a / b; retu ...