1

我正在为 Zend 应用程序编写功能测试。我使用 PHPUnit 和这个包装器运行它们:https ://github.com/chibimagic/WebDriver-PHP

我在本地(v2.19.0)从 jar 文件运行 selenium 独立服务器。我在这个应用程序中使用了很多 js 和 ajax,所以我在我的 FunctionalTestCase 类中创建了一个 waitForAjax 函数,这样我就可以等到所有数据都正确加载。它使用 $.active,因为我使用的是 jQuery ajax 函数。该函数如下所示:

public function waitForAjax($timeout = 10) {
  sleep(1);
  for($i = 0 ; $i < $timeout - 1 ; $i++) {
    $active = $this->getJsResult('return $.active;');

    if($active > 0) {
      sleep(1);
    }else {
      break;
    }
  }
}

函数 getJsResult 从 WebDriver 包装器执行 execute_js_sync 并从 Selenium 响应中获取结果。

我的问题如下: selenium 在站点上执行 js 时随机挂起。有时它几乎立即返回,但大多数时候它只是停留在执行脚本上。这是服务器的唯一输出:

11:58:48.386 INFO - Executing: [execute script: return $.active;, []] at URL: /session/1334915841900/execute)

最困扰我的是为什么会如此随机发生?

我真的可以在这里使用一些帮助。

干杯, Maciej

4

1 回答 1

0

当我第一次使用 Selenium 时,我也遇到过它随机崩溃,我看到它正在消耗很多 RAM,并达到了应用程序可能拥有的最大 RAM,也许这就是我通过在每个请求上以编程方式启动和终止来解决的问题,

问候,

科尔内

于 2012-05-15T14:37:07.440 回答