Selenium中waitForPageToLoad的替代方案

时间:2009-07-29 18:38:48

标签: time event-handling selenium

我在页面上有一系列链接,需要花费不同的时间才能加载...我想捕获每次占用的时间...我遇到的问题是如果超出waitForPageToLoad时间会导致测试失败,其余的链接都没有经过测试......我知道我可以在测试中跳过可疑的链接或设置超出预期的时间限制,但我希望有一个替代waitForPageToLoad可以用来在Selenium中加载页面时陷阱,因此如果页面加载时间超过一分钟,则不会结束脚本。

4 个答案:

答案 0 :(得分:3)

Wawa的回答对我很有用,我只需要将增量添加到第二个变量中。

我也只想等5秒,所以我改变了休息标准。

int second = 0;
while(!selenium.IsElementPresent(mylink))
{
    if(second >= 5) 
        break;
    Thread.Sleep(1000);
    second++;
}

答案 1 :(得分:2)

以下是我要使用的内容:

int second = 0;
while(!selenium.IsElementPresent(mylink))
{
    if(second >= 300) 
        break;
    Thread.Sleep(1000);
}

你真的不需要\想要try-catch(异常)块,因为IsElementPresent不应该抛出异常。

答案 2 :(得分:1)

所以听起来我可能不得不去导出到perl或java来获得我正在寻找的功能。但是,waitForElementPresent确实提供了很多帮助。谢谢: - )

类似......

    for (int second = 0; ; second++) {
        if (second >= 300) break;
        try {if (selenium.isElementPresent( mylink )) break;} 
        catch (Exception e) {}
        Thread.sleep(1000);
    }

答案 3 :(得分:0)

这样做的最佳方法是将超时设置为远期的数字,因为30秒是selenium的默认超时。

setTimout | 300

然后,如果您不想waitForElementPresent

,您可以对下一页上的对象进行waitForPageToLoad调用