我们有一个jenkins脚本管道,可以使用操作对一组经过身份验证的URL运行pa11y自动测试。我们在linux上运行它,配置文件是一个json格式文件。以下为档案:-
{
"chromeLaunchConfig": {
"args": [
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-dev-shm-usage"
]
},
"actions":[
"set field #loginUserId to ***",
"set field #loginPassword to ***",
"click element #loginButton_0 to ***",
"wait for url to be https://www.qa.***.com/account/dashboard"
]
}
下面是调用此配置json文件以运行测试的实际命令行脚本:
pa11y --config config.json --threshold 500 -t 120000 --include-notices --include-warnings --reporter cli https://www.qa.***.com/login > results.json
大多数情况下,它的工作正常,但有几次只是由于以下错误而超时:-
“错误: TimeoutError:等待函数失败:超时超过30万毫秒”
我理解默认超时是30秒,因此我在命令行中用120秒重写-t。但是在它的“等待url为*”的操作下,它仍然选择默认的30秒,有时超时时会失败。如何为json文件中的操作配置超时选项以避免此错误?
发布于 2022-08-30 16:50:01
Pa11y有一个timeout标志/config选项,允许您指定pa11y在放弃之前等待测试完成的时间(以毫秒为单位)。
这个超时值用于整个测试运行,因此这将包括通过傀儡库初始化Chrome、加载页面、执行指定的任何操作以及最终运行自动可访问性测试的时间。从pa11y 6.1.0开始,默认超时时间是60秒。
浏览器采取的每一个动作都有一个额外的超时,这是由木偶库设置的,设置为30秒。虽然这个值可以在傀儡中改变,但我不认为这个超时是在pa11y中公开的,所以它不是可以直接配置的。
一些替代办法可以是:
wait for动作所需时间少于30秒,https://stackoverflow.com/questions/73533148
复制相似问题