1

PHPUnit Selenium テストのブラウザーとして PhantomJS を使用しようとしています。

GhostDriver Readmeのように、Selenium をグリッド モードで実行するように設定し、webdriver で phantomjs を起動してグリッドに登録しました。

Selenium テストを実行すると、不明なコマンド エラーで失敗します。GhostDriver は、PHPUnit が何を言っているのか理解できません。

[ERROR - 2013-05-12T16:23:06.326Z] RouterReqHand - _handle - Thrown => {
  "message": "Request => {\"headers\":{\"Accept\":\"*/*\",\"Connection\":\"Keep-Alive\",\"Content-Length\":\"85\",\"Content-Type\":\"application/x-www-form-urlencoded; charset=utf-8\",\"Host\":\"127.0.0.1:4444\"},\"httpVersion\":\"1.1\",\"method\":\"POST\",\"post\":\"cmd=getNewBrowserSession&1=phantomjs&2=https%3A%2F%2Ftest.testurl.com%2F&\",\"url\":\"/\",\"urlParsed\":{\"anchor\":\"\",\"query\":\"\",\"file\":\"\",\"directory\":\"/\",\"path\":\"/\",\"relative\":\"/\",\"port\":\"\",\"host\":\"\",\"password\":\"\",\"user\":\"\",\"userInfo\":\"\",\"authority\":\"\",\"protocol\":\"\",\"source\":\"/\",\"queryKey\":{},\"chunks\":[\"\"]}}",
  "name": "Unknown Command",
  "line": 87,
  "sourceId": 139810136032448,
  "sourceURL": ":/ghostdriver/request_handlers/router_request_handler.js",
  "stack": "Unknown Command: Request => {\"headers\":{\"Accept\":\"*/*\",\"Connection\":\"Keep-Alive\",\"Content-Length\":\"85\",\"Content-Type\":\"application/x-www-form-urlencoded; charset=utf-8\",\"Host\":\"127.0.0.1:4444\"},\"httpVersion\":\"1.1\",\"method\":\"POST\",\"post\":\"cmd=getNewBrowserSession&1=phantomjs&2=https%3A%2F%2FFtest.testurl.com%2F&\",\"url\":\"/\",\"urlParsed\":{\"anchor\":\"\",\"query\":\"\",\"file\":\"\",\"directory\":\"/\",\"path\":\"/\",\"relative\":\"/\",\"port\":\"\",\"host\":\"\",\"password\":\"\",\"user\":\"\",\"userInfo\":\"\",\"authority\":\"\",\"protocol\":\"\",\"source\":\"/\",\"queryKey\":{},\"chunks\":[\"\"]}}\n    at :/ghostdriver/request_handlers/router_request_handler.js:87",
  "stackArray": [
    {
      "sourceURL": ":/ghostdriver/request_handlers/router_request_handler.js",
      "line": 87
    }
  ]
}

これと同じ質問がGhostDriver サイトで行われましたが、PHPUnit が原因であるという提案があり、回答がありませんでした。それは事実かもしれませんが、私はまだこの仕事をするのに近づいていません. 誰かがそれを修正する方法を知っていますか?

4

1 に答える 1

3

を拡張するテスト クラスを使用しているようですPHPUnit_Extensions_SeleniumTestCasePHPUnit_Extensions_Selenium2TestCase代わりに使用してください。

残念ながら、これで話は終わりではありません。基本クラスを交換すると、Selenium 関連のメソッドの構文が変わります。

デートしたPHPUnit_Extensions_SeleniumTestCaseクラス

対照的に、PHPUnit_Extensions_Selenium2TestCase

  • WebDriver API を使用します
  • Phantom.js をサポート
  • 十分に文書化されていない別のコマンド セットが必要です -このテスト ケースは例によってそれを示しています。
  • 大幅に書き直さなければ、Selenium IDE からエクスポートされたコードでは機能しません。

そのため、PhantomJS を使用して PHPUnit 駆動の Selenium テストをより高速に実行することは可能ですが、コストがかかります。

于 2013-06-29T18:35:02.540 に答える