私は最近、かなり複雑なプロジェクトのために多くのセレン1テストを作成しました。これらはすべてphpで記述されており、selenium-server1.0.7でスムーズに実行されます。
明らかに、Firefox 5(および本日リリースされた6)では、Seleniumサーバー1.0.7は機能しなくなりました。試しましたが、サーバーが空白のウィンドウを開いているだけです。
今、私はそれらのテストをセレングリッドで実行しようとしています。グリッドv1を使用してハブといくつかのリモコンを実行することができましたが、古いサーバーと同じように空白のウィンドウしか開きません。だから私はグリッドv2にアップグレードする必要があると思いました。
何らかの理由でクライアントをハブに接続できますが、ハブに対してテストを実行しようとすると、まったく接続できないようです( "PHPUnit_Framework_Exception:Selenium RCサーバーに接続できませんでした")。セレンスタンドアロンサーバー2.4.0に対してそれらを実行してみましたが、それは機能しているようです。
フォーラムで読んだところによると、セレングリッド2はphpunitでは機能しません(まだ?)。
グリッド上でテストを実行するにはどうすればよいですか?phpunitがサーバーに接続するために欠けているものは何ですか?助けてくれてありがとう!
ハブを次のように設定しました。
java -jar selenium-server-standalone-2.4.0.jar -role hub
そして2人の奴隷:
java -jar selenium-server-standalone-2.4.0.jar -role rc -hub http://127.0.0.1:4444/grid/register -port 5555
java -jar selenium-server-standalone-2.4.0.jar -role webdriver -hub http://127.0.0.1:4444/grid/register -port 5556
グリッドコンソール(http:// localhost:4444 / grid / console)に2つのノードがあるので、ここまですべてが機能しているようです。
これが私がコードで行っているすべての初期化です:
<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
class Grid_Test extends PHPUnit_Extensions_SeleniumTestCase
{
public $captureScreenshotOnFailure = false;
public static $browsers = array(
'FFLinux' => array(
'name' => 'Firefox on Linux',
'browser' => '*firefox',
'host' => '127.0.0.1',
'port' => 4444,
'timeout' => 30000
));
public function setUp()
{
$this->setBrowserUrl('http://www.google.com');
}
public function testGridWorking()
{
$this->open('/');
$this->assertTrue(false);
}
}
このコードは、スタンドアロンサーバー2.4.0でも機能します。予想通り、最終行で失敗します。
例外はPHPUnit/Extensions / SeleniumTestCase/Driver.phpでスローされるようです。問題があるようです。
protected function doCommand($command, array $arguments = array())
{
$url = sprintf(
'http://%s:%s/selenium-server/driver/?cmd=%s',
$this->host,
$this->port,
urlencode($command)
);
[...]
$handle = @fopen($url, 'r', FALSE, $context);
if (!$handle) {
throw new PHPUnit_Framework_Exception(
'Could not connect to the Selenium RC server.'
);
}
[...]
}
ブラウザでhttp:// localhost:4444 / selenium-driver / driverをリクエストすると、次のようになります。
HTTP ERROR: 500
org.openqa.grid.internal.GridException: Session not available - []
RequestURI=/selenium-server/driver
これを修正する方法はありますか?そのURLを変更する必要がありますか?