面向初学者的 Selenium RC 和 PHP

Posted

技术标签:

【中文标题】面向初学者的 Selenium RC 和 PHP【英文标题】:Selenium RC and PHP for beginners 【发布时间】:2010-10-07 09:34:56 【问题描述】:

我正在使用 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 编写这样的系统,但它不会是轻量级的! 【参考方案1】:

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

java -jar selenium-server.jar

Selenium RC 将侦听 localhost(端口 4444),例如,您可以使用 PHP 客户端(Pear)连接它。

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

【讨论】:

【参考方案2】:

我没有用 Selenium 做太多事情,但我的理解是,如果你只有 Selenium IDE,除了在浏览器中运行它之外别无他法——不同的语言输出本质上是不相关的。

如果您想以任何语言将 Selenium 合并到您的程序中,您需要 Selenium RC。

【讨论】:

是的,需要 Selenium RC,而且设置它有点像 PITA。否则,您可以使用 PHP 从命令行调用测试,但您需要在 Selenese 脚本中使用测试。【参考方案3】:

您可以使用 SauceLabs onDemand 使用 PHP 进行 Selenium 测试。而且您不必自己设置 Selenium RC。如果您想查看,他们有 30 天的免费试用期。

http://saucelabs.com/ondemand

【讨论】:

【参考方案4】:

试试 simpletest webtester:

http://www.simpletest.org/en/web_tester_documentation.html

它是一个非常简单的库,符合您对“类似解决方案的要求,您只需加载一个 php 库即可与 dom/html 交互

【讨论】:

【参考方案5】:

Selenium RC 服务器已弃用且已过时。 selenium webdriver 是您需要的,但正如您所提到的,它需要有一个服务器监听并且可能会消耗资源。在 Nearsoft,我们创建了一个库来通过 JSON Wire 协议与 Web 服务器进行交互,但我们的目标是使其与 selenium 网站上的示例尽可能相似,以便 Java 中的任何示例在 PHP 中具有非常相似的语法。 这是链接,希望对您有所帮助:https://github.com/Nearsoft/PHP-SeleniumClient

如果您喜欢它,请分享、参与、分叉或随心所欲:)

问候,马克。

【讨论】:

【参考方案6】:

我上周开始使用Selenium IDE 进行测试,现在我要去Selenium RC。实际上你需要selenium-server-standalone 并且你需要用pear 安装phpunit。看看谷歌有很好的教程。

phpunit准备好后,你需要安装一个插件到Selenium IDE,他命名为Selenium IDE PHP Formaters,然后你可以继续在php(phpunit)中的Selenium IDE-&gt;file-&gt;export文件。

如果没问题,您可以通过以下方式从 cmd 控制台启动测试:

phpunit c:\path\to\myfile.php

它会告诉你测试是否正常。

【讨论】:

【参考方案7】:

我使用phpQuery 来处理这种事情,它是一个 jQuery 端口。

【讨论】:

以上是关于面向初学者的 Selenium RC 和 PHP的主要内容,如果未能解决你的问题,请参考以下文章

php面向对象的初认识

每日答疑白老师:原理图设计的时候,有的人不建议初学者,使用仿真软件进行逻辑功能性验证仿真,作为初

我的Go+语言初体验——初学者的快速入门

Selenium1(Selenium RC)

《零成本实现Web自动化测试--基于Selenium》 Selenium-RC

初入门学习python有哪些用途?