2010-01-06 48 views
16

我有一个相当标准的情况:单击一个按钮,它会加载带有进度条或某物的转换页面,然后该页面将重定向到下一个页面,这需要一段时间才能加载。如何让Selenium在运行断言之前等待转换页面重定向

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

谢谢。

回答

13

一个简单的方法是等待最后一页上一些“特殊”的文字,看到进一步的信息“waitForText”命令就可以了

+0

甜蜜。我做的一件事是在waitForText之前添加setTimeout target = XXXX(以ms为单位)命令,并且减少了断言未满足时等待的时间。 非常感谢,约翰。 – 2010-01-08 13:24:39

+1

您也可以使用waitForLocation并为其指定url。 – user3735633 2015-06-08 22:18:09

+0

你怎么做waitForLocation? – poyger 2017-11-16 15:06:14

1

你可以称之为wait_for_page连续两次。第一个等待重定向,第二个等待最后一页。

5

要添加到约翰的方式,你可以使用硒等待机制,以验证您的最终页面上的元素都存在,像这样:

的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") } 

这会正确地遵循所涉及的任何重定向。从https://code.google.com/p/selenium/wiki/RubyBindings

0

例也可以等到页面的标题是一个预期值:

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