1

私はこの方法で VM で hedless selenium (PHPUnit) Test を実行しています:

Xvfb :99 -ac &>/dev/null & DISPLAY=:99 java -jar selenium-server-standalone-2.33.0.jar -browserSideLog -firefoxProfileTemplate "/root/.mozilla/firefox/i5a8df1g.default"

そして、それはうまくいきます。ここで、送信時に新しいウィンドウを開くフォームをテストしようとしましたが、Selenium IDE でテストを実行すると正常に動作します。新しいウィンドウが開き、アクセスできます。

<tr>
<td>submit</td>
<td>//form[@action='/?ac=user&amp;ac2=cb']</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>selenium.getAllWindowNames()[1];</td>
<td>windowName</td>
</tr> 
 <tr>
<td>selectWindow</td>
<td>${windowName}</td>
<td></td>
</tr>

IDE で getAllWindowNames() 関数を使用すると、常に windowName 変数に "_blank123456" のようなものが返されるので、selelctWindow(${windowName}) 関数を使用してアクセスできます。

PHPUnit にエクスポートすると、次のコードが得られます。

$this->submit("//form[@action='/?ac=user&ac2=cb']");
$windowName = $this->getEval("selenium.getAllWindowNames()[1];");
$this->selectWindow($windowName);

PHPUnit では、この関数は常に「null」を返すため、新しいウィンドウがないように見えます。

PHPUnit 関数 $this->getAllWindowNames(); を使用する場合 直接、1 つのエントリ (メイン ウィンドウの名前) を持つ配列が返されます。既に FF ポップアップ ブロッカーを無効にしましたが、何の効果もありませんでした。xwindow の vm でテストを実行すると、それも機能しました。しかし、ヘッドレスで実行すると常に失敗します。ヘッドレスで動作させるための提案はありますか? 心から。どうもありがとう。

4

0 に答える 0