我正在为 Zend 应用程序编写功能测试。我使用 PHPUnit 和这个包装器运行它们:https://github.com/chibimagic/WebDriver-PHP
我在本地从jar文件(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响应中获取结果。
我的问题如下:硒随机挂起在网站上执行 js。有时它几乎立即返回,但大多数时候它只是停留在执行脚本上。这是来自服务器的唯一输出:
11:58:48.386 INFO - Executing: [execute script: return $.active;, []] at URL: /session/1334915841900/execute)
最让我困扰的是为什么这种情况会发生得如此随机?
我真的可以在这里使用一些帮助。
干杯马切伊
当我
第一次使用 Selenium 时,它也随机崩溃,我看到它正在消耗许多 RAM 并击中应用程序可能具有的最大 RAM,也许这就是我通过在每个请求上以编程方式启动和杀死来解决它的问题,
问候
科尔内