C# 节点上带有HtmlUnit的WebDriver网格固定节点CPU

C# 节点上带有HtmlUnit的WebDriver网格固定节点CPU,c#,webdriver,htmlunit,selenium-grid,C#,Webdriver,Htmlunit,Selenium Grid,我使用Gallio/mbUnit编写了一组非常简单的测试,可以打开浏览器,导航到google.com,在搜索框中键入“seleniumhq”,然后单击搜索按钮 我通过以下方式创建主机: java -jar \"C:\\selenium-server-standalone-2.15.0.jar\" -role hub -port 4444 我的节点具有: java-jar \“C:\selenium-server-standalone-2.15.0.jar\”-角色节点 -hub http://

我使用Gallio/mbUnit编写了一组非常简单的测试,可以打开浏览器,导航到google.com,在搜索框中键入“seleniumhq”,然后单击搜索按钮

我通过以下方式创建主机:

java -jar \"C:\\selenium-server-standalone-2.15.0.jar\" -role hub -port 4444
我的节点具有:

java-jar \“C:\selenium-server-standalone-2.15.0.jar\”-角色节点 -hub http://[hostIP]:4444/grid/register-port 5556-browser browser name=htmlunit,platform=ANY,version=firefox,maxInstances=1

我创建我的webDriver实例,我使用:

驱动程序=新的RemoteWebDriver(“http://localhost:4444/wd/hub", DesiredCapabilities.HtmlUnitWithJavaScript())

我正在监视我的节点机器,当测试开始时,只要运行一个测试,CPU就会达到99%。我在等待搜索按钮显示时超时。。。它就在那里,只是不可见,即使在40秒之后:

var wait = new WebDriverWait(WebDriver, new TimeSpan(0, 0, 0, 40)); 
wait.Until(m => m.FindElement(By.Name("btnG")).Displayed);
你有没有想过为什么这个元素对于HtmlUnit来说是不可见的

有没有想过为什么远程节点上的HtmlUnit的CPU会达到或接近100%,内存峰值会高达800000K

我复制了相同的测试来创建10个相同的测试,如果我删除了click search按钮代码,HtmlUnit测试需要65秒。此测试使用两个节点,每个节点的DegreeOfParallelism设置为10,MaxInstances设置为5。当我在Chrome上用相同的参数运行相同的测试时,它们只需35秒就可以运行,我看不到CPU会发疯。有人对此有什么想法吗?HtmlUnit应该是我读到的速度的4倍左右。我猜我出了一些很明显的错误

谢谢您的帮助和建议。

有点晚了,但是:

要了解HtmlUnitDriver在做什么,请使用
jstack
获取线程转储。您可能会看到它处于死锁状态或陷入循环中

我在使用较旧的HtmlUnit版本时遇到了一些死锁和挂起问题,但最新版本(2.31.0)使用的HtmlUnit 2.11似乎解决了这些问题

看起来您使用的是Selenium 2.15,其中包括HtmlUnit 2.9,这可能是问题所在