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

mar*_*her 22 selenium selenium-ide

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

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

谢谢.

Joh*_*ohn 14

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

  • new WebDriverWait(driver, 20).Until(ExpectedConditions.UrlToBe("my-url")) (3认同)
  • driver.wait(until.urlContains("part_of_expected_URL")) 或 driver.wait(until.urlIs("expected_URL")) (2认同)

jos*_*ain 8

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

Java的:

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

红宝石:

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

这将适当地遵循所涉及的任何重定向.

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