PHPUnit的Selenium 2文档到底在哪里?

19

几个月前,我也问过自己同样的问题。后来我意识到生命太短暂,没必要为很多显而易见的问题而苦苦挣扎,于是决定我的项目不需要用相同语言编写Selenium测试。我转向了Java,现在我是一个快乐的人 ;) - Michal
那本来会是个好建议 :) 但虽然花了两天时间才弄明白这个东西,我对这个包还算满意,并且可以与我的Phing集成,这很不错。但就一个行业标准的包(至少是PHPUnit和Selenium,单独来看)而言,起步信息却惊人地少。无论如何,现在已经跨过了这道坎 :) - Ben
@seimic - 自从我写了这个问题以来,我有机会使用Java的一个版本 - 它明显更容易。最终具有相同的功能,并且与Ant集成得比Phing更好。 - Ben
3个回答

32
Ah-ha时刻已经到来。将为在这些茫茫无边的困惑领域中徘徊的下一个可怜人发布。
当Selenium说“Selenium 2”时,他们喜欢说“Selenium 2 = Selenium服务器 + WebDriver”。
PHPUnit用户需要知道的技巧是WebDriver部分,并非完全包含在PHPUnit中。Selenium已经用其他几种语言编写了WebDrivers,并且有第三方的PHP WebDrivers,但由于现在针对PHPUnit,因此我还没有尝试。WebDriver基本上是在DOM中运行并获取元素的方法。在http://docs.seleniumhq.org/docs/03_webdriver.jsp中有一个很好的概述。
当PHPUnit说“Selenium 2”时,他们指的是他们编写的类实现了大部分WebDriver的功能,但他们没有称其为WebDriver,而是称之为Selenium 2。
由于PHPUnit的自制版本,它们的方法名称与Java或C#版本略有不同。这就是为什么每个人都对PHPUnit测试用例感到兴奋,因为它使得在找到您想要的方法后很容易猜测您要寻找什么,webdriver文档也是如此。
否则,显然PHPUnit中的大部分其他功能都遵循原始的SeleniumTestCase内容;我已经编译了一些链接以集中我的信息。Selenium 1并没有“死亡”,但它已经过时了。PHPUnit仍然使用其实现Selenium 1的大量架构,而PHPUnit的Selenium 2并不真正是Selenium 1++。
因此,没有必要去查找源代码,只需尝试将PHPUnit测试用例与WebDriver文档匹配即可。此外,在SeleniumTestCase的教程中,一些方法已更改为Selenium2TestCase中的名称,但不用担心,这件事仍然是相同的,只是有点模糊。
你可能会问:"为什么不直接使用SeleniumTestCase?"嗯,似乎支持其他浏览器需要WebDriver,所以如果你想摆脱Firefox,你将需要Selenium2TestCase(我可能是错的)。

在我努力搜寻时,这是一些有用的链接:


为了解决我之前提出的多浏览器问题,仍然可以使用来自SeleniumTestCase的静态$browser模式,但是browser索引已经更改为browserName
public static $browsers = array(
    array(
        'name'    => 'Internet Explorer',
        'browserName' => 'iexplore',   // not 'browser'
        'host'    => 'localhost',
        'port'    => 4444,
        'timeout' => 30000,
    ),
};

请注意,如果您正在使用XML配置,则Phing不支持<selenium>标签。

2
请为全面的自我回答投票。 - Nathan Merrill
写了一篇关于如何设置PHPUnit和Selnium2的教程 http://geekpad.ca/blog/post/automating-browser-testing-with-phpunit-and-selenium - Patrick Forget

4

3
PHPUnit Selenium扩展(包含Selenium2TestCase等)不再是PHPUnit项目本身的一部分 - 现在是一个独立扩展,还需要显式安装(即它不是PHPUnit发行版的一部分)。但是,即使是单独的扩展,也似乎没有任何文档。
此外,这个扩展程序不再得到积极开发,并且其部分功能已经无法跟随WebDriver协议的最新更改。
要使用PHPUnit进行Selenium测试,您可以使用基于php-webdriver库的其他工具:
  • Steward直接将php-webdriver集成到PHPUnit中,因此您可以直接从测试中控制Selenium
  • Codeception测试框架,它提供了在php-webdriver和PHPUnit之上的BDD层

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接