## selenium
浏览器自动化工具 (使用代码控制浏览器,执行浏览器操作)
+ 测试工具(unittest / pytest)
## 安装 selenium
1,浏览器(谷歌,火狐)
2,webdriver 驱动,下载地址:https://npm.taobao.org/mirrors/chromedriver/
- 驱动的版本需要和浏览器兼容。一般来说,浏览器91, 就下载 91 驱动。
3,语言绑定包 pip install selenium==3.14
## selenium 的快速使用
- 浏览器前进后退刷新,
- 元素定位
- 点击,输入
示例代码:
from selenium import webdriver # 得到一个浏览器 Chrome # executable_path 表示浏览器驱动的文件路径 # 如果不想传浏览器驱动的路径,事先把 chromedriver.exe 放到系统环境变量路径中 browser = webdriver.Chrome(executable_path='chromedriver.exe') # 访问一个 url 地址 browser.get('http://testingpai.com/') # 获取现在的网页标题 print(browser.title) # 获取现在的 url 是不是已经改变 print(browser.current_url) # 获取源代码 print(browser.page_source) # 访问另一个 url 地址 browser.get('http://baidu.com') # 退回 browser.back() # 前进 browser.forward() # 刷新 browser.refresh() # 最小化 browser.minimize_window() # 最大化窗口 browser.maximize_window() # 关闭一个网页的标签 browser.close() # 关闭整个浏览器 browser.quit()
如果不想传浏览器驱动的路径,事先把 chromedriver.exe 放到系统环境变量路径中,这里python.exe已经在系统路径内,
可以把chromedriver.exe直接放到与python.exe同级目录即可
每次打开浏览器记得关闭浏览器,不然进程会越来越多,也可以使用with,避免忘记
from selenium import webdriver # with open() as f: with webdriver.Chrome() as browser: browser.get("http://testingpai.com") print(browser.page_source)
## web 测试步骤
1、打开网页
2、点点点, 输入框输入
3、断言
4、生成测试报告
5、结合 pytest
测试用例编写:
import time from selenium import webdriver from selenium.webdriver import ChromeOptions from selenium.webdriver.chrome.service import Service class TestDemo: def test_01(self): service = Service(executable_path='chromedriver.exe') with webdriver.Chrome(service=service) as browser: # browser.service. browser.get("http://www.baidu.com") # 先找到输入框, 元素定位 el = browser.find_element('id', 'kw') # 输入框操作 el.send_keys('困困') # 找到搜索按钮 search_btn = browser.find_element('id', 'su') # 点击搜索按钮 search_btn.click() # 让程序休息3 time.sleep(3)