【问题标题】:How to use two browsers in selenium with phpunit如何使用 phpunit 在 selenium 中使用两个浏览器
【发布时间】:2016-07-08 07:35:12
【问题描述】:

我需要同时使用两个浏览器窗口进行测试。我正在使用带有 selenium 的 phpunit。

例子:

  1. 打开 browser1 并导航到某个 url
  2. 复制一些动态内容
  3. 打开 browser2,导航到其他 url,用步骤 2 的内容填写表单并提交表单。

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

现在我无法打开 browser2,每次尝试都会使用 browser1。

有什么想法吗? 谢谢。

【问题讨论】:

    标签: php selenium phpunit


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      希望它能为某人节省时间。

      【讨论】:

        猜你喜欢
        • 2011-08-21
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 2013-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        相关资源
        最近更新 更多