一、selenium简单介绍和使用
是一个用于对web网页进行自动化测试的工具, 可以通过它提供的一些方法自动操作浏览器, 模拟手工操作。
selenium的特点
1. 它是通过驱动浏览器来进行页面登录, 或者是获取页面信息
2. 通过selenium来爬取网址的时候, 效率比较低, 因为浏览器的打开, 请求, 渲染页面都需要一定的时间
3. selenium提供的一些用于元素定位和查找的API都是纯Python语言实现的, 所以效率上看, 没有xml中的定位API效率高
4. selenium是开源免费的, 支持主流的浏览器, IE, FireFox, Chrome, Opera, Safari等
使用方法:
1. 安装selenium: pip install selenium (第三方库)
2. 安装浏览器驱动, 用于启动浏览器: firefox driver, chrome driver
注意: 浏览器驱动的版本最好要和浏览器的版本相匹配, 否则会出现不能启动浏览器的错误!
安装完成后,可在pycharm中执行以下代码测试一下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver=webdriver.Firefox() #创建浏览器对象
driver.get("http://www.baidu.com") #打开网址
driver.find_element(By.ID,"kw").send_keys("测试") #获取页面元素,并输入内容“测试”
driver.find_element(By.ID,"su").click() #点击
time.sleep(10) #等待2秒
driver.quit() #关闭浏览器
二、浏览器操作
主要模拟浏览器打开,关闭,刷新,获取浏览器信息,设置浏览器打开大小,位置,以及cookie相关信息。
三、元素定位
主要是查找获取元素,webdriver提供八种元素定位方法,主要通过元素属性和层级关系定位,有两套定位方法。
第一套是使用webdriver提供的find_element_by_*的八种元素定位方法,from selenium import webdriver。
一个是find_element_by_方式,这是定位单个元素的。一个是find_elements_by_方式,这是用来定位多个元素的。
第二套通过统一调用find_element(By.xx,"yyy")方法,通过By声明定位方法,传入对应定位参数) 导入By类 ,from selenium.webdirver.common.by import By。
- find_element()只会查找页面符合条件的第一个节点,并返回;但是定位不到元素则会报错。
- find_elements()查找多个元素并且返回一个列表,列表里的元素全是WebElement节点对象;当定位不到元素时不会报错,会返回一个空列表。
四、元素操作
主要模拟鼠标--点击,移动,悬停等操作;
键盘--输入内容,快捷键(复制,剪切,粘贴,Fn,回车等)元素方法–获取元素属性,尺寸,文本,判断元素是否可见可用,等待时长等。
五、文件操作
主要模拟文件上传和下载
文章参考:
1、虫师:Selenium 2自动化测试实战-基于python语言
2、https://blog.csdn.net/qq_41664526/article/details/79544949