首页 > 解决方案 > 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']
    },
  }],

你能告诉我我做错了什么吗?

标签: jenkinsselenium-chromedriverwebdriver-ioheadlessgoogle-chrome-headless

解决方案


也许你的浏览器大小有问题,因为你现在没有远程机器上的浏览器大小。

首先尝试从远程浏览器截取屏幕截图,如果使用allure添加到 afterTest 钩子,您可以将屏幕附加到您的报告中:

if (test.error !== undefined) {
      browser.takeScreenshot();
    }

或者只是browser.takeScreenshot()在跌倒前添加线,并从远程机器下载屏幕。

如果问题出在浏览器大小上,请添加'--start-fullscreen', 给您 chrome args。


推荐阅读