自动化测试,尤其是在软件开发过程中,是确保软件质量和稳定性的重要环节。然而,在进行自动化测试时,常常会遇到各种报错信息。这些报错信息可能来源于测试脚本、被测应用、测试框架、测试环境等多个方面。
一、空指针
1. 报错提示:java NullPointerException
2. 解决方案:因为获取到的数据为空,在再次调用时会报空指针,因此,只需要查看是否数据获取成功即可。
二、浏览器版本不对
1. 报错提示:Message: unknown error: call function result missing
2. 解决方案:查看 selenum 对应的浏览器版本号,详见《Selenium 与浏览
器兼容性报告》,并将本地对应浏览器更改为对应版本浏览器
三、 浏览器保护模式异常
1. 错误提示
Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException:
Unexpected error launching Internet Explorer. Protected Mode settings are not the
same for all zones. Enable Protected Mode must be set to the same value (enabled
or disabled) for all zones. (WARNING: The server did not provide any stacktrace
information)
2. 解决方案:把 IE 浏览器选项“安全”中的所有保护模式打开
四、元素定位不到
1.报错提示:unknown error: Element is not clickable at point (580, 47). Other
element would receive the click: ......
2.解决方案:元素定位不到的原因很多,大部分为以下几种情况如:
1).元素定位字段错误:修改定位元素字段
2).因显示遮罩层导致元素定位不到:等待遮罩层消失,或者关闭遮罩层
后进行获取元素
3).元素还未显示:因为浏览器缓慢等因素,导致元素还未出现就进行获
取导致报错,可添加等待时间,等待元素显示后再进行获取。
五、没有 alert 框弹出
1. 提示:selenium.common.exceptions.NoAlertPresentException: Message: no
alert open
2. .解决方案:查看是否做了需要弹出 alert 框的操作,若手动操作弹出 alert,
可以在代码中添加等待时间等待 alert 弹出
六、断言失败
1. 报错提示:java.lang.AssertionError: expected [true] but found [false]
2. 解决方案:查看断言部分是否校验成功,断言内部的判断需要返回 true
时,断言才能通过
七、元素未找到(Element Not Found)
1.原因:测试脚本尝试与页面上的元素交互(如点击、输入文本等),但该元素在DOM中不存在或尚未加载完成。
2.解决方案:增加等待时间(如使用显式等待),确保元素已加载;检查元素选择器是否正确。
八、超时(Timeout)
1.原因:操作(如页面加载、元素查找等)花费的时间超过了预设的时间限制。
2.解决方案:增加超时时间;优化页面加载速度或测试脚本的执行效率。
九、网络问题(Network Issues)
1.原因:测试环境或被测应用与服务器之间的网络连接不稳定或中断。
2.解决方案:检查网络连接;确保服务器正常运行。
十、权限问题(Permission Denied)
1.原因:测试脚本尝试执行需要特定权限的操作(如访问文件、执行敏感操作等)。
2.解决方案:以适当的权限运行测试;调整被测应用的权限设置。
十一、依赖问题(Dependency Issues)
1.原因:测试脚本或测试环境缺少必要的库、框架或工具。
2.解决方案:安装缺失的依赖项;确保所有依赖项都是兼容的版本。
十二、代码错误(Code Errors)
1.原因:测试脚本中存在语法错误、逻辑错误或配置错误。
2.解决方案:仔细检查测试脚本;使用调试工具定位问题。
十三、环境问题(Environment Issues)
1.原因:测试环境配置不正确或不一致,导致测试结果不稳定。
2.解决方案:确保测试环境配置正确且一致;使用虚拟环境或容器化技术来隔离测试环境。
十四、资源不足(Resource Exhaustion)
1.原因:系统资源(如内存、CPU、磁盘空间等)不足,导致测试无法继续执行。
2.解决方案:增加系统资源;优化测试脚本和被测应用以减少资源消耗。
十五、浏览器兼容性(Browser Compatibility)
1.原因:测试脚本在特定浏览器上运行失败,因为浏览器对测试脚本中的某些特性支持不佳。
2.解决方案:检查并测试所有目标浏览器;使用polyfills或条件性代码来确保兼容性。