1

我在 Firefox 上安装了 Selenium IDE,并设法记录和播放各种网络导航序列。我需要的是通过 PHP 自动完成这一切,即运行一个 PHP 脚本来获取最终页面的 HTML 源代码(即在导航序列的末尾)。在 Selenium 中有一个导出到 PHP 的选项,所以我得到如下信息:

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

  function testMyTestCase()
  {
    $this->open("/");
    $this->click("link=24");
    $this->waitForPageToLoad("30000");
    $this->click("link=Test2");
    $this->waitForPageToLoad("30000");
    $this->click("//td[4]/a/img");
    $this->waitForPageToLoad("30000");
    $this->type("username", "user");
    $this->type("password", "pass");
    $this->click("//input[@name='login']");
    $this->waitForPageToLoad("30000");
  }
}

虽然我可以在我的 PHP 代码中使用它,但它似乎没有做任何事情(因为我猜它只是一个类定义)。我如何获得最后一个源页面?请注意,我不希望我的 PHP 代码在屏幕上进行导航,而是希望在 PHP 中进一步处理最终的源代码。

4

2 回答 2

0

导出到 PHP 选项将以使用 Selenium RC PHP 驱动程序运行的形式(需要做一些额外的工作)导出您的测试。它不会导出您正在查看的页面。

开箱即用的 Selenium IDE 不允许您获取页面的最终源并对其进行任何操作。如果我必须完成这样的事情,我会

  1. 重新考虑我的方法

  2. 如果我决定要使用 Selenium IDE 执行此操作,我会考虑使用 user-extension.js 机制来编写一个新的 Selenium 操作,该操作将使用 Javascript 获取页面源,然后将其发布到 URL我的选择

  3. 在执行其余处理的 PHP 页面上方创建 URL。

这有点骇人听闻,需要对 user-extension.js 进行一些研究(并不适合所有人),而且是额外的定制工作,必然是脆弱的。(见选项#1)

于 2009-11-04T18:38:43.433 回答
0

有几件事可以让这更容易。

1)当需要通过 php 进行操作时,它需要连接到服务器。

2)所以去下载服务器(selenium-rc)。运行方式:java -jar selenium-server.jar 检查参数 java -jar selenium-server.jar -? (我认为!)。此时重要的是日志文件位置。

3)服务器将在 localhost 和端口 4444 上启动(上面生成的代码所期望的默认值)。

4)尝试连接上面的php代码。检查您的硒服务器日志。它应该包含尝试连接的详细信息。

于 2009-11-05T08:03:03.370 回答