jenkins - WebDriverIO 没有这样的元素:无法找到元素
问题描述
当我在 Windows 10 上本地运行测试时,它们运行良好。所有测试都通过了。但是当我在 Jenkins 上执行此操作时,我会收到此错误,例如
'no such element: Unable to locate element: {"method":"css selector","selector":"app-header button i.mdi-gamburger-menu"}\n (Session info: headless chrome=70.0.3538.77)\n (Driver info: chromedriver=2.43.600233 (523efee95e3d68b8719b3a1c83051aa63aa6b10d),platform=Linux 4.15.0-76-generic x86_64)' }
下一个带有浏览器配置的 wdio.conf.js
capabilities: [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
args: ['headless', 'no-sandbox', 'disable-gpu', 'disable-dev-shm-usage', 'window-size=1920,1080']
},
}],
你能告诉我我做错了什么吗?
解决方案
也许你的浏览器大小有问题,因为你现在没有远程机器上的浏览器大小。
首先尝试从远程浏览器截取屏幕截图,如果使用allure添加到 afterTest 钩子,您可以将屏幕附加到您的报告中:
if (test.error !== undefined) {
browser.takeScreenshot();
}
或者只是browser.takeScreenshot()
在跌倒前添加线,并从远程机器下载屏幕。
如果问题出在浏览器大小上,请添加'--start-fullscreen'
, 给您 chrome args。
推荐阅读
- reactjs - 重定向到 https 安全在 react-router 中不起作用
- jenkins - 如何将参数传递到管道脚本但不使其成为詹金斯 UI 中的参数化构建
- python - 嵌套 for 循环的递归替代方案
- swift - Swift SKPhysicsBody 空子类不继承父初始化
- bash - 如果存在单词,如何替换世界,否则使用 sed 在行尾附加一个单词
- python - 归并排序递归版本直觉落后
- wifi - 通过 WiFi 将数据从 ESP32 发送到服务器
- vue.js - 当我尝试安装使用 yarn add ../library 创建到我的应用程序的本地 vue js 库时,找不到依赖项
- node.js - 为什么我在 S3 中的图像保存为字符(����94qgs��jX����z)而不是图像?
- c# - 带有子查询的 SQL 查询