什么是PHPUnit的任何Selenium 2文档?

时间:2013-10-01 01:06:48

标签: php selenium-webdriver phpunit functional-testing

我有一个令人沮丧的时间试图找到关于Selenium 2 for PHPUnit的任何信息,除了源代码和测试我可以“透视”以“搞清楚”。每个人的最爱似乎是

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

...但是我肯定不需要挖掘数百行来源来获得简单问题的答案吗?我在哪里可以找到初学者指南,基本文档或任何其他内容?

3 个答案:

答案 0 :(得分:31)

啊,哈哈时刻到了。将为这些荒凉的混乱领域中的下一个可怜的灵魂徘徊。

Selenium 说“Selenium 2”时,他们喜欢说“Selenium 2 = Selenium server + WebDriver”。

PHPUnit人员的技巧是WebDriver部分,它在PHPUnit中不是完全。 Selenium已经用其他几种语言编写了WebDrivers,并且还有第三方用于PHP,我没有尝试过,因为我现在正在针对PHPUnit。 WebDriver基本上是一种在DOM中运行并抓取元素的方法。它在http://docs.seleniumhq.org/docs/03_webdriver.jsp处得到了很好的概述。

PHPUnit 说“Selenium 2”时,他们意味着他们已经编写了在WebDriver中编写大部分内容的类,但他们是不称之为WebDriver,他们称之为Selenium 2.

由于PHPUnit的自制版本,它们的方法与Java或C#版本的命名略有不同。这就是为什么每个人都对the PHPUnit test case感到非常兴奋,因为在你找到webdriver文档中你想要的方法之后,它可以很容易地猜出你在寻找什么。

否则,显然PHPUnit中的大多数其他功能都坚持原始的SeleniumTestCase内容;我在下面编了几个链接来集中我的信息。硒1不是“死”,但它已经老了。 PHPUnit仍然在其Selenium 1的实现中使用了很多架构,而PHPUnit的Selenium 2并不是真的,而是Selenium 1 ++。

因此,没有理由去寻找源代码,只是尝试将PHPUnit测试用例与WebDriver文档进行匹配。此外,SeleniumTestCase教程中的一些方法更改了Selenium2TestCase中的名称,但不要担心,事情仍然有效,只是有点混淆。

您可能会问,“为什么不使用SeleniumTestCase?”好吧,似乎对其他浏览器的支持需要WebDriver,所以如果你想要离开Firefox,你需要Selenium2TestCase(我可能是错的)。


以下是我发现的一些有用的链接:


要解决上面的多浏览器问题,仍然可以使用$browser中的静态SeleniumTestCase模式,但browser索引已更改为browserName:< / p>

public static $browsers = array(
    array(
        'name'    => 'Internet Explorer',
        'browserName' => 'iexplore',   // not 'browser'
        'host'    => 'localhost',
        'port'    => 4444,
        'timeout' => 30000,
    ),
};

请注意,如果您使用的是XML配置,则Phing不支持<selenium>标记。

答案 1 :(得分:4)

我刚刚经历了同样的过程,并写了这篇文章作为我和其他人的参考:

http://scipilot.org/blog/2013/06/30/re-learning-unit-testing-selenium-2-phpunit-selenium/

听起来你已经回答了我的大部分发现,但至少你会感到沮丧不那么孤单!

答案 2 :(得分:3)

PHPUnit Selenium扩展(包含Selenium2TestCase等)不再是PHPUnit项目本身的一部分 - 它现在是standalone extension,也需要明确安装(即它不是PHPUnit发行版)。但是,即使是单独的扩展,似乎也没有任何文档。

此扩展程序不再是主动开发的,而且部分不是最新的WebDriver协议的最新更改。

要将Selenium与PHPUnit一起使用,您可以使用基于php-webdriver库的其他工具:

  • Steward将php-webdriver直接集成到PHPUnit中,因此您可以直接从测试中控制Selenium
  • Codeception测试框架,它在php-webdriver和amp;之上提供BDD层。 PHPUnit的