3

Selenium に問題があり、動作させることができません。
私がやりたいこと:
私たちの顧客は、いくつかの場所で自動的に実行され、かかった時間が記録される Selenium テスト ケースを私たちに送信します。Selenium と Firefox Portable を使用したいのは、テストをユーザー入力やさまざまな場所にインストールされているソフトウェアから完全に独立させたいからです。開始条件については以上です ;)
これまでに行ったこと:
最初のバージョンは完全に Java で書かれており、Selenium IDE Plugin -> Export to Java WebDriver を使用して、顧客からのテスト ケースを Java にエクスポートしました。WebDriver エクスポートがサポートしていない機能を顧客が使用しているため、これはもう実行できません。また、お客様からのテストを変更したくないため、Java エクスポートはもはやオプションではありません。
したがって、最初の実行では、次のコマンドを使用します (すべての変数が正しく設定されています)。

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0.jar -port 5555 
-firefoxProfileTemplate "Firefox\Data\profile" -log logs\selenium_server.log 
-htmlSuite "*firefox" http://localhost:5555 Testsuite.html
logs\results-firefox-%curTimestamp%.html

これにより、ポータブルのFirefoxではなく、プリインストールされたFirefoxが起動します。顧客のマシンでは、Firefox がインストールされていないため、まったく起動されません。そのため、代わりに「カスタム」htmlSuite を使用して、Firefox へのパスを提供する必要がありました。

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0.jar -port 5555 
-firefoxProfileTemplate "Firefox\Data\profile" -log logs\selenium_server.log 
-htmlSuite "*custom %FF_DIR%\FirefoxPortable.exe" http://localhost:5555 Testsuite.html 
logs\results-firefox-%curTimestamp%.html

Selenium Server は Windows で実行するとこのコマンドを実行できないため、これは機能しません ( http://code.google.com/p/selenium/issues/detail?id=3274を参照) コメント #6 Selenium Server スタンドアロン Jar にパッチを適用し、テストを再度実行しました。これでブラウザを起動できましたが、テストを実行できませんでした。最初のページが読み込まれた後、「プロパティ 'ドキュメント' へのアクセス許可が拒否されました」というエラーが表示されます。
ここでの解決策は、ユーザー権利の問題が原因である可能性があることを示唆しており、「chrome」htmlSuite を試す必要があります (参照: https://sqa.stackexchange.com/questions/1453/how-to-fix-permission-denied- to-access-property-document ) したがって、次のようにしました。

java -jar selenium-2.33.0/selenium-server-standalone-2.33.0-patched.jar 
-port 5555 -firefoxProfileTemplate "FirefoxPortable\Data\profile" 
-log logs\selenium_server.log -htmlSuite "*chrome %FF_DIR%\FirefoxPortable.exe" 
http://localhost:5555 Testsuite.html logs\results-firefox-%curTimestamp%.html

「パッチを適用した」selenium と「chrome」htmlSuite に注目してください。それもうまくいきませんでした。だから、ここで簡単に結果:

  • htmlSuite = firefox: インストールされている場合は、Portable ではなく、プリインストールされている Firefox が使用されます。FF がインストールされていない場合、テストは完全に失敗します

  • htmlSuite = chrome: サーバーは、Windows の実行をサポートしていない EnvironmentVariables を設定しようとするため、ブラウザーを起動できません ( http://code.google.com/p/selenium/source/browse/java/client/srcを参照)。 /org/openqa/selenium/os/WindowsProcessGroup.java#67行 67 以下)

  • htmlSuite = googleChrome: Google Chrome Portable は起動できますが、Chrome ブラウザーはテストで指定されたいくつかの要素を見つけることができないため、Chrome を使用できません (上記のように、テストを変更することはできません)。

  • htmlSuite = iexplore: Internet Explorer は起動しますが、Selenium によって作成されたカスタム プロファイルを参照する JavaScript エラーが表示されるため、IE でもテストが機能しません。

  • htmlSuite = custom: Portable Firefox は起動されていますが (yeahaw)、テストを実行するための十分な権限がありません。

4

3 に答える 3

5

Jenkins や TeamCity などの継続的インテグレーション システムを使用して、テストを自動的に実行できます。

于 2013-07-05T13:07:59.780 に答える