c# - Selenium C# Click() 在使用 Jenkins 时无法访问另一个 URL
问题描述
我在无头模式下使用 Selenium C# 在本地进行了 30 个测试。
当我尝试使用 Jenkins 时,就会出现问题。消息是“无法找到元素”。花了很多时间才明白问题不在于时间等待而不是帧大小。
Chrome 选项(他们说帧大小会有所帮助,但事实并非如此):
ChromeOptions co = new ChromeOptions();
co.AddArgument("--window-size=2560,1440")
co.AddArgument("--ignore-certificate-errors")
co.AddArgument("headless")
测试的 web 应用程序是用 vue.js 制作的(一切都是动态生成的)。要获取 URL Jenkins 显示的页面或子页面大约需要 2-4 秒:
driver.Url = "http://app.com/home" //not my URL
并且每个 Click() 在某个 URL 上都可以正常工作:如果 URL 相同,您可以在任何地方单击,甚至在弹出表单上也可以单击(Click() 大约需要 600 毫秒)。
但是,如果您在指向另一个 URL 的元素上单击(),则不会显示该页面(即使您等待 80 秒)。
这个问题可以通过使用来解决
driver.Url = "http://app.com/home/menu"
但这不是真正的测试。
解决方案
推荐阅读
- javascript - PowerShell生成HTML时如何从-Fragment中排除表,colgroup和first tr?
- javascript - 在 React/Gatsby 中,当我无权访问文档对象时,如何使用 CSS 关键帧为粘性标题设置动画?
- google-smart-home - 我可以为 Homegraph api 使用其他数据库而不是 firebase 吗?
- c - C中不兼容的结构指针
- android - 如何使用我的 APK 提供的数据向 Android 联系人提供数据
- flutter - 使用 Flutter bloc_test 测试特定状态
- c# - 如何使用 C# Microsoft.Office.Interop.Word 生成包含重复表头且不在第一页第一行的 word 文档?
- python - Growatt Web Data 使用请求和漂亮的汤与登录
- sas - 估计 SAS 中两个连续变量的风险比
- python - “ValueError:没有为任何变量提供渐变”图层中的自定义函数