Selenium RC和PHP入门指南

3

我正在运行一个带有Apache/PHP/MySQL的Ubuntu服务器。我想在我的一个PHP项目中使用Selenium。基本上,我想要一个设置,可以将Firefox Selenium IDE(格式设置为php)中的代码复制并粘贴到我的PHP项目中,就像这样:

<?php

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class Example extends PHPUnit_Extensions_SeleniumTestCase
{
  protected function setUp()
  {
    $this->setBrowser("*chrome");
    $this->setBrowserUrl("http://www.google.com/");
  }

  public function testMyTestCase()
  {
    $this->type("q", "stack overflow");
    $this->click("link=2");
    $this->waitForPageToLoad("30000");
    $this->click("btnG");
    $this->waitForPageToLoad("30000");
    $this->type("q", "stack overflow php");
    $this->click("btnG");
    $this->waitForPageToLoad("30000");
  }
}
?>

我尝试使用Selenium RC在PHP中完成此操作,但文档令人困惑且过时。

我将非常感激有关如何入门PHP和Selenium RC的初学者指南。

非常感谢。

编辑:

感谢反馈。我已经在Ubuntu/firefox上成功运行了Selenium,但显然这不是我要找的。它需要运行Java服务器,并依赖于完整的浏览器,使其远非轻量级。

如果有人知道类似的解决方案,可以只加载php库与dom/html交互,请告诉我。


我不明白如何“只需加载一个PHP库即可与DOM/HTML交互”是可能的。要与HTML和DOM交互,必须拥有能够解释HTML并构建DOM的东西 - 这意味着浏览器或等效物。毫无疑问,您可以在PHP中编写这样的系统,但它不会轻巧! - Colin Fine
7个回答

3

启动Selenium RC非常简单(如果您已经有桌面环境),请确保您已安装JRE并运行以下命令:

java -jar selenium-server.jar

Selenium RC会在本地侦听(端口4444),您可以使用PHP客户端(Pear)连接它。

顺便说一下,Testing_Selenium(Pear)客户端已过时,例如不支持HTTP POST,您可能有兴趣修补它(http://github.com/tszming/Testing_Selenium--Patch-)


1

我对Selenium并不熟悉,但我的理解是,如果你只有Selenium IDE,那么除了在浏览器中运行它以外,就没有更多的方法了——不同的语言输出基本上是无关紧要的。

如果你想将Selenium整合到任何语言的程序中,你需要使用Selenium RC。


是的,需要使用Selenium RC,并且设置起来有点麻烦。否则,您可以使用PHP从命令行调用测试,但需要使用Selenese脚本中的测试。 - bobdiaes

0

0

你可以使用SauceLabs OnDemand来使用PHP进行Selenium测试,而不必自行设置Selenium RC。如果你想尝试一下,他们有一个30天的免费试用。

http://saucelabs.com/ondemand


0

我上周开始尝试使用 Selenium IDE 进行测试,现在我将转向 Selenium RC。 实际上,您需要的是 selenium-server-standalone,并且需要使用 pear 安装 phpunit。 在 Google 上有很好的教程。

phpunit 准备就绪后,您需要安装一个名为 Selenium IDE PHP Formaters 的插件到 Selenium IDE 中,然后您可以在 php(phpunit)中继续进行 Selenium IDE->file->export 文件导出。

一切就绪后,您可以通过 cmd 控制台运行以下命令启动您的测试:

phpunit c:\path\to\myfile.php

它会告诉你测试是否通过。


0

我使用phpQuery来处理这种事情,它是一个jQuery的移植版本。


0

Selenium RC服务器已经过时且不再更新。Selenium WebDriver是您需要的,但正如您所提到的,它需要有一个正在侦听的服务器,并可能消耗资源。在Nearsoft,我们创建了一个库来通过JSON Wire协议与Web服务器进行交互,但我们的目标是使其尽可能类似于Selenium网站上的示例,因此Java中的任何示例在PHP中都具有非常相似的语法。

这是链接,希望对您有所帮助:https://github.com/Nearsoft/PHP-SeleniumClient

如果您喜欢它,请分享、参与、分叉或随意使用 :)

敬礼,马克。


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