如何让Selenium在运行断言之前等待转换页面重定向

如何让Selenium在运行断言之前等待转换页面重定向,selenium,selenium-ide,Selenium,Selenium Ide,我有一个相当标准的情况:单击一个按钮,它加载一个带有进度条或其他东西的转换页面,然后该页面重定向到下一个页面,这需要一段时间才能加载 我希望在最后一个页面上运行断言,而不是在转换页面上。如何告诉Selenium IDE在执行断言之前等待最终页面加载 谢谢。一个简单的方法是等待最后一页上的某些“特定”文本,请参阅“waitForText”命令以获取更多信息您可以连续两次调用wait\u for\u page。第一个等待重定向,第二个等待最终页面。要添加到John的方法中,您可以使用Selenium

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

我希望在最后一个页面上运行断言,而不是在转换页面上。如何告诉Selenium IDE在执行断言之前等待最终页面加载


谢谢。

一个简单的方法是等待最后一页上的某些“特定”文本,请参阅“waitForText”命令以获取更多信息

您可以连续两次调用wait\u for\u page。第一个等待重定向,第二个等待最终页面。

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

Java:

WebDriverWait wait=newwebdriverwait(webDriver,10);//秒
wait.until(预期条件.元素的可视性)(By.id(“foo”));
Ruby:

wait=Selenium::WebDriver::wait.new(超时:10)#秒
等到{driver.find_元素(id:“foo”)}
这将正确地遵循任何涉及的重定向


示例从

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

$driver->wait()->until(WebDriverExpectedCondition::titleIs('New page title from redirect'));

好极了。我所做的一件事是在waitForText之前添加一个setTimeout target=XXXX(毫秒)命令,这缩短了它在不满足断言时等待的时间。非常感谢,John。您也可以使用waitForLocation并为其提供url。如何执行waitForLocation?新建WebDriverWait(driver,20)。直到(ExpectedConditions.UrlToBe(“我的url”))驱动程序。等待(直到.urlContains(“部分预期url”)或驱动程序。等待(直到.urlIs(“预期url”))