Тест WebDriver с использованием Google Chrome зависает при выполнении через процесс сборки с использованием TFS / NUnit - PullRequest
2 голосов
/ 10 февраля 2012

У меня проблема с Selenium WebDriver, Microsoft Team Foundation Server, NUnit и Chrome / ChromeDriver. Я надеюсь, что, возможно, кто-то может предложить некоторые идеи или указать мне направление для расследования. Прямо сейчас я зашел в тупик по этому вопросу.

Подробности проблемы -

Я обнаружил, что моя автоматизация тестирования селена зависает, когда тесты вызываются нашим автоматическим процессом сборки (Microsoft Team Foundation Server) с использованием Google Chrome в качестве браузера для тестирования. По сути, 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 или идентификатором, подобным этому, но я все еще вижу проблему:

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, но проблема все еще сохраняется.

1 Ответ

2 голосов
/ 12 мая 2012

Это известная ошибка .В итоге я завернул вызов, используя тайм-аут gevent, поэтому, если chromedriver блокируется, я могу просто убить его и перезапустить.

...