打个响指Selenium自动化开启
最近斗哥在朋友的影响下,接触了自动化测试工具中的一个项目:appium自动化测试脚本。
appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,所以在讲appium类前先了解下Selenium自动化测试的使用。
其实功能测试自动化跟爬虫一样 ,都是要进行元素定位与操作,所以Selenium可以用来爬取数据。
0x00 Selenium简述
Selenium 是一个用于Web应用程序测试的工具。提供了一系列简单的API,让我们使用Selenium WebDriver调用 WebDriver的所有功能,Selenium可以直接操作浏览器,就像真正的用户在操作一样。
0x01 Selenium 环境准备
一、语言选择
Selenium 支持多种语言开发,如Java、Python、Ruby、PHP、C#、JavaScript等。
斗哥这里选择Python。
python官网(https://www.python.org/)下载对应系统安装包,python2版本与python3版本都支持Selenium
安装步骤斗哥这里就不介绍,安装完成后在终端输入python看到python的安装的版本信息。则安装成功(未发现命令可能要手动添加安装位置的环境变量)。
![]()
二、浏览器选择
Selenium支持与多种浏览器交互,如Chrome、Firefox、Edge、Safari等
除了火狐浏览器原生支持以外,Selenium 要通过浏览器驱动来与浏览器交互。
Chrome:
https://sites.google.com/a/chromium.org/chromedriver/downloads
下载Chrome驱动需要梯子,无法下载可以在下方留言浏览器驱动
Edge:
https://developer.microsoft.com/ ... dge/tools/webdriver
Safari:
https://webkit.org/blog/6900/webdriver-support-in-safari-10
以Chrome为例,下载时都是32位的驱动这个不用在意,下载对应的Chrome版本就行。
![]()
![]()
下载完,将这个exe的路径加入环境变量, 就可以根据驱动连接浏览器。
![]()
新手推荐火狐浏览器,不需要驱动。
三、 Selenium安装
windows的python安装包已经集成了pip可以直接使用
命令:pip install selenium
下载时指定版本为3.14.1。
![]()
0x03 Selenium 快速入门
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
|
此时已经控制浏览器,并且自动访问百度。
![]()
0x04 Selenium 元素定位
当我们要访问页面某个功能,某个标签,就需要在界面找到这些元素。selenium中有一系列以find_开头的方法,都是用于元素定位。
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
先使用浏览器的开发者模式,或者用Firebug等插件,确定元素位置属性,再用脚本实现。
确定了百度的输入框位置。
![]()
就可以用方法对定位元素的位置。如:driver.find_element_by_id('kw')
0x05 Selenium 元素操作
定位完就可以对元素做操作,鼠标点击,输入文本。
|
1 2 3 4 5 6 7 |
|
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 |
|
如果运行正常,将会自动执行以下操作:打开一个火狐浏览器,然后打开百度首页,在输入框中输入“python”然后回车。

0x06 小小总结
本期的内容就介绍到这里啦!下期将带来appium测试工具的使用,以及appium测试微信小程序的相关介绍。不见不散
打个响指Selenium自动化开启的更多相关文章
- Selenium自动化面试题
(1)selenium的工作原理? ① 脚本启动driver ② driver去驱动浏览器作为远程服务器 ③ 执行脚本发送请求 ④ 服务器解析请求作出相应操作,并返回给客户端(脚本) ( ...
- Python3 Selenium自动化web测试 ==> 第一节 起始点之Python单元测试框架 unittest
前置步骤 Python版本:3.6.4 selenium版本:3.11.0 >>> import selenium >>> help(selenium) IDE:P ...
- Python2.6.6执行selenium自动化
系统类型: [root@bogon home]# uname -aLinux bogon 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 20 ...
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景 在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...
- Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)
Selenium 获取 JavaScript 返回值非常简单,只需要在 js 脚本中将需要返回的数据 return 就可以,然后通过方法返回 js 的执行结果,方法源码如下所示: /** * Get ...
- Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)
在自动化脚本编写过程中,操作元素之前,需要对元素进行高亮显示(通过修改元素的边框样式),同时进行截图,以记录操作的元素对象.在实际应用中较为少见,通常用于演示,或者发生错误时的屏幕截图捕捉,用于错误报 ...
- Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)
通过 JS 或 JQuery 获取到元素后,通过 offsetLeft.offsetTop.offsetWidth.offsetHeight 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...
- Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资 ...
- Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)
前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...
随机推荐
- 直流滤波器 verilog
// dc filter- y(n) = c*x(n) + (1-c)*y(n-1) `timescale 1ps/1ps module ad_dcfilter #( // data path dis ...
- Python 的 JPype 模块调用 Jar 包
背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接口时需要依赖Python:而大多数公司的扩展工具包使 ...
- OpenCV-Python-边缘检测
Canny边缘检测方法被誉为边缘检测的最优方法. import cv2 import numpy as np img = cv2.imread('handwriting.jpg', 0) edges ...
- 2018-2019-2 20165328《网络对抗技术》Exp0 Kali安装week1
1.下载Kaili安装资源并解压安装到虚拟机: 2.修改默认字体与共享文件设置: 3.更新软件源与下载中文输入法: 4.安装完成.
- angular/cli 常用指令
1.安装@angular/cli npm install -g @angular/cli 2.更新@angular/cli npm uninstall -g @angular/cli npm cach ...
- JSON字符串自动转换
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...
- 分享:使用 TypeScript 编写的游戏代码
<上篇博客>我写出了我一直期望的 JavaScript 大型程序的开发模式,以及 TS(TypeScript) 的一些优势.博客完成之后,我又花了一天时间试用 TS,用它来重构之前编写的一 ...
- How Classes are Found
转载自: https://docs.oracle.com/javase/7/docs/technotes/tools/findingclasses.html How Classes are Found ...
- 封装PDO函数
funPDO.php <?php /** * @title: 封装PDO函数 * * @Features: * 1. 封装 SELECT ,INSERT,DELETE,UPDATE 操作 @do ...
- [CSAcademy]Find the Tree
[CSAcademy]Find the Tree 题目大意: 交互题. 有一棵\(n(n\le2000)\)个结点的树,但是你并不知道树的形态.你可以调用\({\rm query}(x,y,z)\)( ...