如何在WebdriverIO+Cucumber场景下延长browser.debug的超时时间?
解决方案
之前尝试的方案无效有三个核心原因:
- 修改的
waitforTimeout为元素等待专属配置,和debug命令超时完全无关 - 老版本
browser.debug({wait: xxx})传参方式在WebdriverIO v6及后续版本已废弃 - Cucumber步骤超时优先级高于debug命令超时,若前者配置时长更短会先触发超时
第一步:调整wdio.conf.js全局配置
在配置根层级(不要写到cucumberOpts内)添加debugTimeout专属配置,同时同步调大Cucumber步骤超时:
exports.config = merge(configs, { // 新增debug专属超时,单位毫秒,此处设为2分钟 debugTimeout: 120000, // 原有其他全局配置 waitforTimeout: 120000, connectionRetryTimeout: 90000, framework: 'cucumber', cucumberOpts: { // Cucumber步骤超时必须大于debugTimeout,此处设为3分钟,避免步骤先被中断 timeout: 180000, // 其他原有cucumber配置 } })
修改配置后重启测试服务即可生效,此时全局调用browser.debug()默认就会使用120秒的超时。
第二步:临时调整单次debug超时的正确写法
如果仅需要给单次debug设置更长超时,WebdriverIO v6及以上版本直接传入毫秒数即可,不需要传对象。注意当前WebdriverIO默认使用异步模式,必须加await阻塞步骤执行,否则debug不会生效:
await browser.debug(120000)
内容的提问来源于stack exchange,提问作者David Hempy
相关产品推荐
相关产品推荐

