我需要同时使用两个浏览器窗口进行测试。我正在使用phpunit和selenium。
示例:
我无法从浏览器1导航到第3步中的网址,因为它无效。
现在我无法打开browser2,我每次尝试都会使用browser1。
有什么想法吗? 感谢。
答案 0 :(得分:1)
我做到了这一点。您基本上需要第二个驱动程序对象,并在该对象上使用open()。所以现在你有两个驱动程序对象 - 一个用于浏览器1,另一个用于浏览器2.你将需要记住哪个驱动程序对象。因为如果要在浏览器2中触发操作,则需要在第二个驱动程序对象上调用所需的函数,而不是默认函数。
这不是很直观,因为开箱即用大多数Selenium API几乎不会给你一个单独的驱动程序对象。
答案 1 :(得分:0)
谢谢基思泰勒。我玩了一些代码,最后我能够做到。
我会把代码放在这里,因为它可能对某人有用。
首先要创建一个扩展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");
希望能节省时间给某人。