我在Ruby / Cucumber中进行了测试,该测试运行在Web服务的几个连续页面上。我需要让它等到一个特定的页面完成它的事情并关闭,以便检查后面页面的内容。
除了测试查看错误的页面时,其他所有工作都正常。
我看到有等待&直到方法,但我不知道如何应用它们来检查当前的URL - 如何让我的程序等到要检查的页面打开?
非常感谢任何帮助。
感谢您的评论。测试运行selenium webdriver和Firefox浏览器。希望这更清楚。
我希望它等待之前的代码是:
def confirm_payment
within_frame(find('iframe')) do
find_by_id('CompanyLogo').click
end
end
这是该块的最后一步:
if @pymnt_rqd == "y"
confirm_customer_details
enter_payment_card_details
confirm_payment
#wait here until the page has turned to the response screen
end
我需要它等到页面转动之后再进行此操作:
#Check the text on the response screen against the csv file.
check_response_screen
答案 0 :(得分:0)
要等待新页面,您可以等待新的正文:
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
wait = Selenium::WebDriver::Wait.new(timeout: 10)
driver.navigate.to "http://stackoverflow.com/"
# get the body element
body = driver.find_element(:css, "body")
# do something to change the page
...
# wait for a new page (new body)
wait.until {driver.find_element(:css, "body") != body}