Selenium为单个测试提供了2个浏览器实例
我使用phpunit作为硒的包装。我有一个测试,模拟同一网站上的两个用户。所以我需要打开两个不能共享cookie的浏览器——不能只有两个窗口。它们是相同的测试,因此,例如,一个用户将在第一个浏览器实例中单击某个内容,而另一个用户将在另一个浏览器实例中查找更改。不允许以其他用户身份注销和重新登录Selenium为单个测试提供了2个浏览器实例,selenium,selenium-webdriver,phpunit,Selenium,Selenium Webdriver,Phpunit,我使用phpunit作为硒的包装。我有一个测试,模拟同一网站上的两个用户。所以我需要打开两个不能共享cookie的浏览器——不能只有两个窗口。它们是相同的测试,因此,例如,一个用户将在第一个浏览器实例中单击某个内容,而另一个用户将在另一个浏览器实例中查找更改。不允许以其他用户身份注销和重新登录 有办法做到这一点吗?免责声明:我根本没有尝试过,但这种模式可能会奏效 不幸的是,phpunitwebdriver实现与单元测试框架代码紧密耦合。但是,您可以尝试这样的方法,以使两个不同的web驱动程序实例
有办法做到这一点吗?免责声明:我根本没有尝试过,但这种模式可能会奏效 不幸的是,phpunitwebdriver实现与单元测试框架代码紧密耦合。但是,您可以尝试这样的方法,以使两个不同的web驱动程序实例并行运行:
<?php
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
private $driver1;
private $driver2;
protected function setUp()
{
$this->driver1 = $this->createDriver();
$this->driver2 = $this->createDriver();
}
protected function createDriver()
{
$driver = new PHPUnit_Extensions_Selenium2TestCase();
$driver->setBrowser('firefox');
$driver->setBrowserUrl('http://www.example.com/');
$driver->start();
return $driver;
}
public function testTitle()
{
$this->driver1->url('http://www.example.com/');
$this->driver1->assertEquals('Example WWW Page', $this->title());
$this->driver2->url('http://www.example.com/');
$this->driver2->assertEquals('Example WWW Page', $this->title());
}
protected function tearDown() {
$this->driver1->stop();
$this->driver2->stop();
}
}
?>
这可能会有很多问题,但你可以试试
或者,您可以放弃此特定测试的PHPUnit集成,使用专门的PHP WebDriver API,如,这将使您更好地控制WebDriver实例。免责声明:我根本没有尝试过这一点,但该模式可能会起作用 不幸的是,phpunitwebdriver实现与单元测试框架代码紧密耦合。但是,您可以尝试这样的方法,以使两个不同的web驱动程序实例并行运行:
<?php
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
private $driver1;
private $driver2;
protected function setUp()
{
$this->driver1 = $this->createDriver();
$this->driver2 = $this->createDriver();
}
protected function createDriver()
{
$driver = new PHPUnit_Extensions_Selenium2TestCase();
$driver->setBrowser('firefox');
$driver->setBrowserUrl('http://www.example.com/');
$driver->start();
return $driver;
}
public function testTitle()
{
$this->driver1->url('http://www.example.com/');
$this->driver1->assertEquals('Example WWW Page', $this->title());
$this->driver2->url('http://www.example.com/');
$this->driver2->assertEquals('Example WWW Page', $this->title());
}
protected function tearDown() {
$this->driver1->stop();
$this->driver2->stop();
}
}
?>
这可能会有很多问题,但你可以试试
或者,您可以放弃此特定测试的PHPUnit集成,使用专门的PHP WebDriver API,如,这将使您更好地控制WebDriver实例。您可以创建两个WebDriver实例。创建webdriver的实例d1和d2。启动两者,导航到URL。然后执行d1中的操作,验证是否发生在d2中。除上述操作外。若d2中未反映更改,则可能需要刷新页面。您可能需要创建两个WebDriver实例。创建webdriver的实例d1和d2。启动两者,导航到URL。然后执行d1中的操作,验证是否发生在d2中。除上述操作外。若更改并没有反映在d2中,您可能需要刷新页面。