【发布时间】: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