【发布时间】:2010-01-06 15:53:14
【问题描述】:
我有一个相当标准的情况:单击一个按钮,它会加载一个带有进度条或其他内容的转换页面,然后该页面重定向到下一页,这需要一段时间才能加载。
我想在最后一页而不是过渡页上运行断言。如何告诉 Selenium IDE 在执行断言之前等到最后一页加载?
谢谢。
【问题讨论】:
标签: selenium selenium-ide
我有一个相当标准的情况:单击一个按钮,它会加载一个带有进度条或其他内容的转换页面,然后该页面重定向到下一页,这需要一段时间才能加载。
我想在最后一页而不是过渡页上运行断言。如何告诉 Selenium IDE 在执行断言之前等到最后一页加载?
谢谢。
【问题讨论】:
标签: selenium selenium-ide
一种简单的方法是在最后一页上等待一些“特定”文本,有关详细信息,请参阅“waitForText”命令
【讨论】:
要添加到 John 的方法,您可以使用 Selenium wait 机制来验证最终页面上的元素是否存在,如下所示:
Java:
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") }
这将正确地遵循所涉及的任何重定向。
【讨论】:
您可以连续调用两次 wait_for_page。第一个等待重定向,第二个等待最终页面。
【讨论】:
您也可以等到页面标题为预期值:
$driver->wait()->until(WebDriverExpectedCondition::titleIs('New page title from redirect'));
【讨论】: