关于自动化用例在无头模式运行失败

现象

在执行web自动化测试时,运行无头模式时,测试报告往往会报错,但是在正常模式下运行是没有报错的。

原因

无头模式下,前端的js脚本有的会不完全加载,具体表现为一个元素的类在浏览器检查时会变为class=aaa show 但是在无头模式下,这个元素依旧为class=aaa 并没有通过js脚本改变了元素的属性。

解决

  1. 尽量在定位时,少采用因为js脚本导致元素属性变化而产生的临时唯一性,作为定位的依据。
  2. 在自动化脚本编写完毕后,进行无头模式运行一遍,确保无头浏览器下的稳定性。