有时,我的selenium测试会收到以下建议:How do you get selenium to recognize that a page loaded?没有解决我的问题。当我使用open或openAndWait时,它通常发生在测试开始时。奇怪的是,页面实际上是打开的,但测试只是停止,不会继续执行。我使用beta-2版本和multiwindow true。我使用自定义命令调用浏览器。我愿意接受任何建议。
thx
kuku
发布于 2009-04-03 09:13:01
你有没有试过在openAndWait后面放一个fixed pause (几秒钟)?根据我的经验,selenium中所有的“打开”和“点击”(甚至是*AndWait )都不能保证在处理下一个selenium命令之前,页面是完全加载到浏览器中的。这就是为什么我总是在这样的命令之后添加一个小停顿。
即使在浏览器中看到正在呈现的页面,这也不一定意味着Selenium的命令处理器此时可以使用所有内容。
发布于 2010-03-13 03:07:20
这对我在IE6,IE7,IE8,FF,Chrome都适用:
<tr>
<td>waitForCondition</td>
<td>
(selenium.browserbot.getCurrentWindow().$$("body").length == 1) ? true : false;
</td>
<td>10000</td>
</tr>它只是轮询目标窗口并检查body元素。然而,它仍然容易受到超时的影响,但您可以将其设置为您喜欢的任何值。
注意:上面的代码使用Prototype JS来获取body元素。这不是必需的,但如果您使用的是另一个JS库,则需要进行一些修改。
发布于 2011-11-10 13:25:23
我也遇到过类似的问题,不管发生什么,我的都会超时。
我看到页面已经完全呈现出来了,但是由于某些原因,selenium.open(relative_url)将会超时。
我尝试将超时设置为120秒,但仍然存在相同的问题。将速度设置为非常慢也无济于事。
我通过使用/catch处理异常来修复它,并且基本上继续验证页面是否真的呈现(工作起来像符咒一样),所以我的代码看起来像这样:
try {
selenium.open(relative_url);
} catch (Exception e) {
// check if page rendered completely here
}
// continuehttps://stackoverflow.com/questions/713136
复制相似问题