概念
WEB自动化框架
三大组件:
- selenium IDE 浏览器插件,实现脚本录制
- WebDriver 实现对浏览器的各种操作(API包)
- Grid 实现同时对多个用例进行执行,用例在多个浏览器同步执行
环境搭建
1、安装selenium:
pip install selenium
2、安装浏览器
3、安装浏览器驱动(对应的驱动,版本必须一致)
将其复制在python路径下(selenium默认会寻找@path路径)
注意: 浏览器版本必须和浏览器驱动版本必须一致。
google driver下载地址:goole driver
底层
selenium框架 操作 浏览器驱动 操作 浏览器
1、启动浏览器驱动服务
2、webdriver脚本与浏览器建立连接,在发送请求(JsonWoreProtocol指令包)
其实底层就是将原本复杂的浏览器操作进行了封装,让浏览器操作更加简单
即客户端为脚本,服务器为浏览器驱动
浏览器常见操作
操作 | 代码 |
---|---|
最大化 | driver.maximize_window() |
最小化 | driver.minimize_window() |
指定窗口大小 | driver.set_window_size(2000, 800) |
前进 | driver.forward() |
后退 | driver.back() |
获取网页标题 | driver.tit |
获取网页url | driver.current_ur |
获取网页信息 | driver.page_source |
截图 | driver.get_screenshot_as_file(‘路径’) |
三种等待方式
-
自接等待:
time.sleep(5) -
隐视等待:
drive.implicitly_wait(5) # 在轮询时间内等待到了就执行,全局变量 -
显示等待:
WebDriverWait(driver, 10, 0.6).until()
参数:1.driver:浏览器对象
2.最长等待时间
3.每隔多久查找一次,默认0.5
方法:1.until(‘判断一个元素是否在页面出现的方法’):每隔一段时间调用这个传入的方法,直到返回值不是False
2.方法为:expected_conditions.element_to_be_clickable(“元素定位”) -
显示等待,封装成简单的方法
1、分装
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
class MyGonJu