UI自动化测试中经常遇到的问题及解决措施
一 、元素定位不到的原因?
1、元素没有加载出来
解:活用三大等待方法 :显示等待(只匹配目标元素),隐式等待(等待页面加载完成),强制等待(强制等待几秒,常用于上传文件等)
2、框架没有切换
解:
from selenium import webdriver class Frame(): # 切换至上一层框架 def parent_frame(self, driver): driver.swith_to.parent_frame() # 切换至最顶层框架 def defcult_frame(self, driver): driver.switch_to.default_content() # 切换至下一层框架 通过框架元素的属性来定位 也可通过索引来定位 def frame(self,driver,selectors): driver.switch_to.frame(selectors)
3、句柄没有切换:多标签页
解:
from selenium import webdriver class Handles(): # 句柄的切换 def cutover_handles(self, driver, text): # 获取当前所有页面的句柄 handles = driver.window_handles driver.switch_to.window(handles[text])
4、定位的元素是随机变化的
解:通过元素xpath或者css来定位
二、如何提高测试稳定性
1、优化三大等待的使用方式
2、能直接访问的链接,不要去一步步的点击
3、使用try,except,来抛出错误
4、尽量使用css来定位元素
本文来自博客园,作者:小宋同学QAQ,转载请注明原文链接:https://www.cnblogs.com/song-testing/p/16528853.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?