【问题标题】:In Robot Framework, page is not loading fully in headless chrome in ubuntu:18.04在机器人框架中,页面未在 ubuntu:18.04 中以无头 chrome 完全加载
【发布时间】:2021-07-13 19:11:41
【问题描述】:

关于被测 Web 应用程序: 应用程序是使用 Angular JS 和 React 开发的。

问题: 从主页使用机器人框架,导航到其他页面。页面部分加载,部分组件未加载。(页面是使用 Angular 和 React 代码开发的

使用的设置: 下面的 chrome 选项 用于启动浏览器

Call Method    ${chrome options}    add_argument    --headless
Call Method    ${chrome options}    add_argument    --start-maximized
Call Method    ${chrome options}    add_argument    --no-sandbox
Call Method    ${chrome_options}    add_argument    --disable-dev-shm-usage

使用的版本:

  • ubuntu:18.04
  • Python 3.6.9
  • robotframework-4.0
  • robotframework-selenium2library-3.0.0
  • gitlab 13.10

注意: 使用上述设置,在 Windows 机器中在 Headless 和 GUI 中工作,仅在 CI/CD 中不起作用

这里有人遇到过同样的问题,请帮助解决这个问题?谢谢!

【问题讨论】:

  • 请添加 Robotframework 返回的错误类型。
  • @BoburMeliev 实际上我没有收到任何错误,只是页面部分加载。所以我无法移动到下一页,因为预期的元素不可见。我尝试睡眠长达 15 分钟,重新加载页面,但没有任何效果。 注意: 页面有多个 API 调用,所以它在 UI 中获取和设置,不确定这些调用是否在 headless chrome 中触发。因为我在部分加载的页面中看不到加载图标。
  • 如果页面没有在CI中完全加载only,在你自己的机器本地打开页面,复制请求(例如,至少firefox有copy as curl)然后尝试在 CI 机器中分别运行这些 curl 命令,看看是否得到响应。很可能是 CI 框没有相同的网络访问权限,例如防火墙阻止了对特定主机的传出请求,而这些请求会导致错误可能会破坏渲染和/或资产获取的其余部分。
  • 附言。 robotframework-selenium2library 不是你应该使用的 - 它充当元包,将获取 real robotsframework-seleniumlibrary ..

标签: reactjs angularjs robotframework ubuntu-18.04 google-chrome-headless


【解决方案1】:

我相信这是因为您使用的是旧版本的 Selenium 库,如果是 5.1.3,则当前是最新版本。尝试安装最新版本

pip install --upgrade robotframework-seleniumlibrary

pip install --upgrade robotframework-selenium2library

然后更新您的浏览器和浏览器驱动程序。

【讨论】:

  • 不走运,我尝试使用最新的 seleniumlibrary 5.1.3
  • 安装Xvfb和使用非无头浏览器还有另外一种选择。
猜你喜欢
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2018-07-02
  • 2016-06-10
  • 2020-05-13
  • 2019-05-10
  • 2013-06-13
  • 1970-01-01
相关资源
最近更新 更多