【问题标题】:Selenium works in chrome normally but does not work with chrome headlessSelenium 在 chrome 中正常工作,但不适用于 chrome headless
【发布时间】:2019-10-22 20:53:04
【问题描述】:

我从 selenium IDE 创建了一个简单的测试,并将其保存为 .side 文件

在我的cmd中执行命令:selenium-side-runner C:\path\to\file\prueba2.side,测试成功。

但是当我使用 chrome headless 命令运行测试时:selenium-side-runner -c "goog:chromeOptions.args=[headless]" C:\path\to\file\prueba2.side 它会引发以下错误:

TimeoutError: Waiting for element to be located By (css selector, div: nth-child (2)> .rc .LC20lb) 等待15163ms后超时

我尝试通过在执行产生问题的行之前添加 5 秒的暂停来解决问题,但它不起作用,引发同样的问题。

【问题讨论】:

  • 既然您在元素定位器上看到TimeoutError,您能否确认——在抛出错误之前是否有任何语句搜索元素?还是他们都失败了?您可能需要添加更多 chromeOptions 才能让 headless 正常工作。
  • @Christine 产生错误的语句如下:css=div:nth-child(2) > .rc .LC20lb。我还需要添加哪些其他选项?
  • 在此之前还有其他 findElement 调用吗?我试图弄清楚整个页面是否中断,或者这一行是否有问题。
  • 不,只是寻找那个项目

标签: selenium selenium-ide


【解决方案1】:

在以下链接中我找到了解决方案:https://medium.com/@griggheo/running-selenium-webdriver-tests-using-firefox-headless-mode-on-ubuntu-d32500bb6af2

当我们使用浏览器无头模式时,我们必须将指令find_element_by_id更改为find_element_by_xpath,因为无头模式下的浏览器有时无法通过id找到元素但是通过 XPath

【讨论】:

    【解决方案2】:

    您可以尝试将 --nogpu 参数添加到您的 chromeOptions。我之前必须使用它才能让 headless 正常工作。

    selenium-side-runner -c "goog:chromeOptions.args=[--headless,--nogpu]" C:\path\to\file\prueba2.side
    

    【讨论】:

      猜你喜欢
      • 2023-01-14
      • 2022-01-08
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2013-01-28
      • 2017-03-29
      • 1970-01-01
      相关资源
      最近更新 更多