我以这种方式在我的 VM 上运行 hedless selenium (PHPUnit) 测试:
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&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 上运行测试时,它也可以工作。但是无头运行总是失败。有什么建议可以让它无头工作吗?真挚地。非常感谢。