我使用 Selenium Webdriver 框架创建了一个 Nunit 测试。 当我使用 cmd.exe 手动启动它时,它可以工作:
这就是我启动它的方式:(翻译:“执行批处理 Windows 命令行”)
我将所有权利授予了 Jenkins: 他可以与桌面交互:
翻译: “打开一个 session :
- 本地系统帐户
- 允许服务与桌面交互)”
我也尝试使用 Windows session ID 启动它,错误有所不同,但仍然不起作用。
我必须准确地说,这里的 Jenkins 运行在 Windows Server 2012(具有管理员权限)上,并且我已经在我的个人计算机(W7 和 W8.1)上启动了测试,没有问题。
在这种情况下,我怎样才能让我的测试与 Jenkins 一起工作?
最佳答案
这可能很简单,因为 Jenkins 代理生成页面及其内容的速度不如本地计算机那么快。
尝试在失败的测试中添加隐式等待。
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
隐式等待是告诉 WebDriver 在尝试查找一个或多个元素(如果它们不能立即可用)时轮询 DOM 一段时间。默认设置为 0。设置后,将在 WebDriver 对象实例的生命周期内设置隐式等待。
关于batch-file - 批处理窗口命令行不能与 Jenkins 一起使用,而可以手动工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689131/