27

我有一个相当标准的情况:单击一个按钮,它会加载一个带有进度条或其他东西的转换页面,然后该页面重定向到下一页,这需要一段时间才能加载。

我想在最后一页而不是过渡页上运行断言。我如何告诉 Selenium IDE 在执行断言之前等到最后一页加载?

谢谢你。

4

4 回答 4

16

一种简单的方法是在最后一页上等待一些“特定”文本,有关详细信息,请参阅“waitForText”命令

于 2010-01-08T00:25:43.160 回答
11

要添加到 John 的方法,您可以使用 Selenium等待机制来验证最终页面上的元素是否存在,如下所示:

爪哇:

WebDriverWait wait = new WebDriverWait(webDriver, 10); // seconds
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("foo")));

红宝石:

wait = Selenium::WebDriver::Wait.new(timeout: 10) # seconds
wait.until { driver.find_element(id: "foo") }

这将正确地遵循所涉及的任何重定向。

来自https://code.google.com/p/selenium/wiki/RubyBindings的示例

于 2015-12-08T16:47:49.753 回答
3

您可以连续调用 wait_for_page 两次。第一个等待重定向,第二个等待最后一页。

于 2011-03-01T17:11:17.097 回答
0

您也可以等到页面标题为预期值:

$driver->wait()->until(WebDriverExpectedCondition::titleIs('New page title from redirect'));
于 2018-01-31T23:02:56.523 回答