背景:工作项目的业务流程很长,往往需要做很多的前期数据准备,页面加载有时也挺慢。如果脚本中某个测试步骤failed了,调试之后就得从头开始跑脚本,如果一个脚本中有多个测试步骤failed的话,那就得重跑多次,非常浪费时间。
期望:脚本失败之后能够将页面停留在失败处,脚本修改过后(例如:页面元素定位改变,添加等待时间等),能够接着上次失败的地方继续往下跑,看看脚本中是否还存在别的错误,一次性fix,而不是每次从头开始跑,一次只能发现一个问题。
实现(本方法适用于webdriver.io + chrome):
- 在脚本开始调试之前,添加 driver session id 的获取code ,并在log中打印出来:
console.log("chrome sessionID:", await this.browser.requestHandler.sessionID);
2.注释掉跑完case就关闭浏览器的操作(例如:this.browser.end()), 因为一旦quit或者end ,这个session就会被关闭,删除,没办法接着操作。
3.Run 你要调试的脚本,在log中获取到session id。注意不要关闭浏览器。
4.将获取到的session ID 赋值给driver:
this.browser.requestHandler.sessionID = '74776b5d3d092de4942475c3bc005184';
5.注释掉之前启动driver时调用的”this.browser.init()“,接着,注释掉之前跑过了的测试步骤
现在你可以接着上个session继续调试自动化脚本了!!