4

有时我的硒测试会超时这些建议:你如何让硒识别页面加载?没有解决我的问题。当我使用 open 或 openAndWait 时,它主要发生在测试开始时。奇怪的是页面实际上被打开了,但测试只是停止并且没有进一步执行。我使用的是 beta-2 版本和多窗口 true。我用自定义命令调用我的浏览器。我愿意接受任何建议。

谢谢

库库

4

3 回答 3

1

您是否尝试过在 openAndWait 之后设置固定暂停(几秒钟)?根据我的经验,selenium 中的所有“打开”和“点击”(甚至是 *AndWait )都不能保证在处理下一个 selenium 命令之前页面已完全加载到浏览器中。这就是为什么我总是在这些命令之后添加一个小暂停。

即使您在浏览器中看到正在呈现的页面,这并不一定意味着此时 Selenium 的命令处理器可以使用所有内容。

于 2009-04-03T09:13:00.840 回答
1

这适用于 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 库,则需要进行一些修改。

于 2010-03-12T19:07:19.540 回答
1

我有一个类似的问题,无论如何我都会超时。
我看到页面已完全呈现,但由于某种原因selenium.open(relative_url)会超时。

我尝试将超时设置为 120 秒,但仍然是同样的问题。将速度设置为非常慢也无济于事。

我通过使用 try/catch 处理异常来修复它,并且基本上继续验证页面是否真的呈现(就像一个魅力)所以我的代码看起来像这样:

try {
    selenium.open(relative_url);
} catch (Exception e) {
    // check if page rendered completely here
}
// continue
于 2011-11-10T05:25:22.833 回答