前言
写自动化,元素定位调试和元素定位失败都是比较麻烦的事,对于定位调试,可使用复用浏览器的方法来,此次分享一个使用pdb方法,来对元素调试或定位。
在 pytest 中,可以直接使用 --pdb 参数在测试失败时开启调试,主要参数如下:
pytest --pdb # 每次遇到失败都跳转到 PDB
pytest -x --pdb # 第一次遇到失败就跳转到 PDB,结束测试执行
pytest --pdb --maxfail=N # 只有前N次失败跳转到 PDB
pdb 提示符出现后,便可以使用 pdb 的交互调试功能,查看错误时,有以下常用命令:
- p/print expr :输出变量 expr 的值;
- pp expr :美化输出 expr 的值;
- l/list :列出错误并显示错误之前和之后的5行代码;
- l/lsit begin, end :列出错误,并显示指定行号之间的代码;
- a/args :打印当前函数的所有参数和变量;
- u/up :移动到堆栈的上一层;
- d/down :移动到堆栈的下一层;
- q/quit :退出当前调试会话(也会退出测试会话)
案例
利用pdb特性,失败时进入调试模式,所以故意写错,然后进入pdb调试模式,
也可以直接使用pdb模式。
from selenium import webdriver
def test_aa():
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
ele=driver.find_element_by_css_selector('#kw')
1/0
命令行执行pytest -vs --pdb,程序会在1/0处报错,此时进入pdb模式
在输入send_keys操作,查看浏览器此时输入成功
如果此时需要点击操作也是可以的
查看浏览器即可看到效果。