google-chrome - 使用 TFS/NUnit 通过构建过程执行时,使用 Google C

我在使用 Selenium WebDriver、Microsoft Team Foundation Server、NUnit 和 Chrome/ChromeDriver 时遇到问题。我希望也许有人可以提供一些见解或指出我进行调查的方向。现在我在这个问题上遇到了困难。

问题详情-

我发现当我们的自动构建过程 (Microsoft Team Foundation Server) 使用 Google Chrome 作为测试浏览器调用测试时,我的 selenium 测试自动化挂起。本质上,TFS 通过 MSBuild 构建,然后调用 NUnit,后者依次执行我的 Selenium 测试。我可以在 Windows 任务管理器(以及构建日志)中看到 nunit-console、nunit-agent、Google Chrome 和 ChromeDriver 进程已启动,但随后这些进程似乎只是挂起。

同样,只有在使用 Google Chrome 作为测试浏览器在我们的构建机器上自动启动测试时,这才会重现。我确认运行 TFS 的帐户是管理员,当我使用 Firefox 作为我们的自动化运行/构建过程的浏览器时,这个问题不会自行显现。

我在代码中写了一堆调试语句并设法将挂起范围缩小到如下行:

IWebElement element =driver.FindElement(By.XPath(strXpath));

上述语句的 strXpath 值是这样的:

//ul[contains(@class,'topnew')]

我已经尝试更改 By 选择器以搜索具有 css 类或 Id 的元素,但我仍然看到问题:

element = driver.FindElement(By.ClassName("topnew"));

这是 ChromeDriver 日志中的最后几条语句:

[157.979][FINER]:   Waiting for all views to stop loading...
[216.963][FINE]:    Command received (/session/43fb268cae9e2131577d6fdddedb5c7f/refresh
[216.963][FINER]:   Waiting for all views to stop loading..

这是在我们构建机器上运行的软件-

Selenium version 2.18.0.0 (I have also tried 2.14.0.0) using the .Net binaries (the tests are written in C#)
Nunit version 2.5.9.10348
Windows Server 2008 R2
Chrome version 16.0.912.77
ChromeDriver.exe version 18.0.995.0 (windows version)
Microsoft Team Foundation Server 2010 – version 10.0.30319 

作为解决方法,我尝试让 MSBuild 调用一个 powershell 脚本,然后调用 NUnit,但问题仍然存在。

最佳答案

这是一个已知的 bug .我最终使用 gevent 超时包装了调用,因此如果 chromedriver 锁定,我可以简单地杀死它并重新启动它。

关于google-chrome - 使用 TFS/NUnit 通过构建过程执行时,使用 Google Chrome 的 WebDriver 测试挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9221095/

相关文章:

.net - 如何设置 "user cannot change password"AD属性

hive - 使用 Apache Hive session 化我的日志数据的更好方法?

sql - 查找某个点之后或之前的值

c# - 在 IIS 服务器上发布 C# 控制台应用程序

ruby-on-rails - 如何从 Rails 中的模型继承,其中一种类型在不交织的情况下扩展另

cuda - 在 Cmake 项目中指定 openmp CUDA 标志

visual-studio-2010 - Visual Studio 2010 中缺少添加可部署程序

mysql - 导入mysql数据中断,如何恢复?

python - subprocess.Popen 不是线程安全的?

php - php中var-export函数的反义词是什么?