一、Selenium自动化测试框架
1.什么是框架?
- 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题
- 框架是整个或部分系统的可重用设计
- 框架,其实就是某种应用的半成品
2.为什么使用框架?
- 自己从头实现太复杂
- 使用框架能够更专注于业务逻辑,加快开发速度
- 框架的使用能够处理更多细节问题
- 使用人数多,稳定性,扩展性好
3.selenium的webdriver工作原理?
①脚本运行后,会打开指定浏览器,webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server,接收测试脚本的命令
②客户端(即测试脚本)通过ComandExecutor发送HTTP请求给Server
③webdriver通过浏览器的原生组件,转化Web Service的命令为浏览器的native的调用来完成操作
④用户操作Web Application的过程
4.安装selenium框架:pip install selenium==2.48.0(低版本较稳定)
二、Selenium API基础
1.浏览器驱动对象
①库的导入
from selenium import webdriver
②创建浏览器对象:driver = webdriver.xxx()
driver=webdriver.Firefox()
#谷歌浏览器需要导入chromedriver.exe驱动,驱动版本和浏览器版本一致
driver=webdriver.Chrome("路径\chromedriver.exe")
③浏览器尺寸的相关操作
#浏览器窗口最大化
driver.maximize_window()
#获取浏览器窗口尺寸
print(driver.get_window_size())
#设置浏览器窗口尺寸
driver.set_window_size(500,500)
④浏览器位置相关操作
#获取浏览器在屏幕显示的位置
print(driver.get_window_position())
#设置浏览器在屏幕显示的位置
driver.set_window_position(5,5)
⑤浏览器的关闭操作
#关闭当前窗口
driver.close()
#关闭所有窗口
driver.quit()
⑥页面请求操作
#访问url,获取响应
driver.get("https://www.baidu.com")
#刷新当前页面
driver.refresh()
#访问另一个url,获取响应
driver.get("https://www.taobao.com/")
#回退到百度的页面
driver.back()
#前进到之后的页面
driver.forward()
2.获取断言信息的操作
①获取当前页面url
print(driver.current_url)
②获取当前浏览器标题
prin