Selenium测试在执行javascript时随机崩溃

时间:2012-04-20 10:14:32

标签: php javascript selenium phpunit webdriver

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

我从本地jar文件运行selenium独立服务器(v2.19.0)。我在这个应用程序中使用了很多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)

最让我困扰的是为什么这种情况如此随机发生?

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

干杯, 马切伊

1 个答案:

答案 0 :(得分:0)

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

此致

Corné