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