繁体   English   中英

如何在phpunit中使用两个硒浏览器

[英]How to use two browsers in selenium with phpunit

我需要同时使用两个浏览器窗口进行测试。 我正在将phpunit与硒一起使用。

例:

  1. 打开browser1并导航到一些URL
  2. 复制一些dinamyc内容
  3. 打开浏览器2,导航到其他URL,用步骤2的内容填写表单并提交表单。

我无法从browser1导航到步骤3中的URL,因为那样将无法正常工作。

现在,我无法打开browser2,我所做的每一次尝试都将使用browser1。

有任何想法吗? 谢谢。

我已经做到了 基本上,您需要第二个驱动程序对象,并在该对象上使用open()。 因此,现在您有两个驱动程序对象-一个用于浏览器1,一个用于浏览器2。您将必须记住哪个驱动程序对象。 因为如果要在浏览器2中触发操作,则需要在第二个驱动程序对象上调用所需的函数,而不是默认值。

这不是很直观,因为大多数Selenium API几乎都是开箱即用的,无需真正询问即可为您提供单例驱动程序对象。

谢谢基思·泰勒。 我玩了一点代码,终于可以做到了。

我将代码放在这里,因为它可能对某人有用。

首先是创建一个扩展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");

希望可以节省时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM