首页 > 解决方案 > 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" 

但这不是真正的测试。

标签: c#seleniumjenkins

解决方案


推荐阅读