Selenium RC WaitForPageToLoad挂起

Bri*_*ian 1 php selenium selenium-rc

我正在努力让Selenium RC启动并运行在我的网站上进行一些自动化测试.我发现我一直想验证我没有破坏任何功能,手动测试开始变得无聊.

但是,我似乎无法让Selenium RC与WaitForPageToLoad一起使用.

我尝试复制他们在selenium文档中给出的基本示例,但测试总是卡在:$ this-> waitForPageToLoad("30000"); 我可以看到它在窗口中显示的距离很远,并且页面似乎已正确加载(我们在谷歌搜索结果页面).但测试失败并超时.

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

/**
 * Description of Test
 *
 * @author brian
 */
class Test extends PHPUnit_Extensions_SeleniumTestCase {

    function setUp() {
        $this->setBrowser("*safari");
        $this->setBrowserUrl("http://www.google.com/");
    }

    function testMyTestCase() {
        $this->open("/");
    $this->type("q", "selenium rc");
    $this->click("btnG");
    $this->waitForPageToLoad("30000");
    $this->assertTrue($this->isTextPresent("Results * for selenium rc"));
    }
}
Run Code Online (Sandbox Code Playgroud)

更有趣的是,如果我在等待时刷新页面,一切都会按预期继续.因此看起来似乎waitForPageToLoad没有意识到页面已经加载.

Ros*_*son 5

Selenium RC文档中的示例已过时.谷歌改变了他们的主页不久前的工作方式,它不再是一个简单的HTML页面.按下搜索按钮现在是一个AJAX类型的操作,它发送搜索请求并获取由页面中的JavaScript代码处理的JSON响应.因此页面永远不会被重新加载,而WaitForPageToLoad()最终会超时.