该项目能够快速熟悉复习selenium webdriver
- -src 代码
- --package 顶包
- ---module 模块(package包下的模块)
- ----init.py 模块初始化
- ----test_selenium.py 模块
- -download_file 下载文件存放路径,通过chromeOptions capability设置
- -save_images webdriver 截图保存图片路径
- -webdriver_init.py webdriver 初始化(本地、远程、chromeoptions参数配置)
- -logging_init.py logging 初始化(日志初始化配置,每次触发写入本地文件和控制台)
- -report allure生成json、html报告存放位置
- -pytest.ini pytest单元测试框架配置文件
- -requirements.txt 依赖
pip install requirement.txt
pytest
pytest src/package/module/test_selenium.py
# 运行标注@pytest.mark.test的测试用例
pytest -m test
pytest -v
https://www.cnblogs.com/hl-2030/p/13690165.html?ivk_sa=1024320u
cd ~
vim .bash_profile
export ALLURE_HOME=/Users/liyinchi/workspace/python/python-learning/allure-2.17.2/
export PATH=$PATH:ALLURE_HOME/bin
allure --version
已在项目根目录下新建目录report,在report目录下html文件夹用于存放html报告
pytest -s -q --alluredir ./report
allure generate ./report -o ./report/html
- 实例化
form selenium import webdriver
driver=webdriver.Chrome()
- 打开、关闭、退出浏览器
webdriver.Chrome()
webdriver.Firfox()
driver.close()
driver.quit()
- 访问网页
driver.get("https://www.baidu.com")
- 网页后退、前进
访问多个不同域名或者路由地址后,可操作性
driver.back()
driver.forward()
- 等待
from time import sleep
sleep(2)# 等待2秒
- 刷新浏览器页面
driver.refresh()
- 窗口操作
driver.maximize_window() # 窗口最大化
driver.minimize_window()# 窗口最小化
driver.fullscreen_window()# 窗口全屏
driver.get_window_size() # 获取窗口大小
driver.set_window_size(500,500)# 设置窗口大小
driver.set_window_position(0,0) # 设置窗口位置
driver.get_window_position() # 获取窗口位置
- 网页标题(属性)
driver.title # 网页当前标题
driver.name # 当前实例浏览器名称
- 获取当前网页地址(属性)
driver.current_url
- 获取网页源码
driver.page_source
- 多窗口操作
handle_all=driver.window_handles # 获取所有窗口句柄
handle=driver.current_window_handle # 获取当前窗口句柄 (存储原始窗口句柄)
driver.switch_to.window(handle) # 切换到指定句柄窗口
driver.switch_to.window(handle_all[0]) # 切换到指定句柄窗口
assert len(driver.window_handles)==1 # 检查当前有没有其他开启的窗口
wait.until(EC.number_of_windows_to_be(2))# 等待打开两个窗口
# 遍历循环,找到新的窗口(存储当前所有窗口A=》打开新窗口=》获取当前所有窗口B 并遍历A和B差异)新窗口索引位置一般在最后一个???
- 多窗口操作(selenium 4)
driver.switch_to.new_window('tab') # 打开一个新标签时,并自动切换到新标签
driver.switch_to.new_window('window')# 打开一个新窗口时,并自动切换到新窗口
- 切换焦点
driver.switch_to_alert() # 切换到弹窗
driver.switch_to_default_content() # 切换焦点到主窗口(相对iframe/frame来说)
- 切换到iframe 或frame
driver.switch_to_frame(参数可以是frame的索引、名称或者元素) # 切换到frame或iframe
- 隐性等待
driver.implicity_wait(10) # 等待10秒
- 设置页面完全加载完 超时时间
driver.set_page_load_timeout(10)# 10秒
- 设置脚本执行的 超时时间
driver.set_script_timeout(10)# 10秒
driver.
driver.
driver.
driver.
driver.
driver.
driver.
driver.
driver.
driver.