Selenium WebDriver、Microsoft Team Foundation Server、NUnit、および Chrome/ChromeDriver に問題があります。誰かが洞察を提供したり、調査の方向性を示してくれることを願っています。現在、私はこの問題に悩まされています。
問題の詳細 -
Google Chrome をテスト ブラウザーとして使用して、自動化されたビルド プロセス (Microsoft Team Foundation Server) によってテストが呼び出されると、セレン テストの自動化がハングすることがわかりました。基本的に、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 を呼び出すようにしましたが、問題は解決しません。