2016-03-21 8 views
0

同時に2つのブラウザウィンドウを使用してテストする必要があります。私はセレンでphpunitを使用しています。セレンでphpunitで2つのブラウザを使用する方法

例:

  1. オープンbrowser1と、他のURLに移動し、いくつかのURL
  2. コピー一部dinamycコンテンツ
  3. オープンbrowser2に移動しますステップ2の内容と形式を記入し、フォームを送信。

ブラウザ3から手順3のURLにナビゲートできません。ブラウザ1からURLに移動できません。

現在、私はbrowser2を開くことができません。私が行うすべての試みは、browser1を使用します。

アイデア?おかげさまで

答えて

0

ありがとうKeith Tyler。私はコードを少し演奏し、やっと私はそれを行うことができました。

誰かにとって役に立ちそうなので、ここにコードを入れておきます。

まず最初はPHPUnit_Extensions_Selenium2TestCaseを拡張するクラスを作成することです:

class Browser extends PHPUnit_Extensions_Selenium2TestCase 
{ 
    public function __construct(){ 
     parent::__construct(); 
     $this->setHost("127.0.0.1"); 
     $this->setPort(4444); 
     $this->setBrowser("firefox"); 
     $this->setBrowserUrl("url"); 
     $this->prepareSession(); // this does the trick 
    } 
} 

次に、あなたがこのようにそれを使用することができます:

$this->url("url1"); // $this will be the default browser 
$browser2 = new Browser(); // $browser2 is the new browser and has all the functions from phpunit and selenium available 
$browser2->url("url2"); 

それは誰かに時間を節約することを願っています。

1

私はこれをしました。基本的には、2番目のドライバオブジェクトが必要で、そのオブジェクトに対してopen()を使用します。これで、ブラウザ1とブラウザ2の2つのドライバオブジェクトが作成されました。どのドライバオブジェクトを覚えておく必要がありますか。ブラウザ2でアクションをトリガする場合は、デフォルトではなく、その2番目のドライバオブジェクトで目的の関数を呼び出す必要があるためです。

ほとんどのSelenium APIは、実際には尋ねることなくシングルトンドライバオブジェクトを提供しているので、直感的ではありません。

関連する問題