我正在屏幕抓取一个页面,其中包含一个链接,该链接产生一个弹出窗口,该窗口由选择列表和执行选择的按钮组成。目标是单击主页面上的链接,在弹出窗口中进行选择,单击链接以确认选择,然后在主网页上查看新选择。
以下是我在Celerity中采取的步骤和结果:
popup_browser = browser.image(:alt, 'Holidays').click_and_attach
#this creates a new browser to deal with the popup window
popup_browser.select_list(:id, 'ddlSlot1').select_value('Christmas')
#Selecting Christmas from the select list
popup_browser.link(:id, 'btnChangeHoliday').click
#Confirms/Implements selection
popup_browser.close
#Closes popup browser
puts browser.div(:id, 'HolidayName').text
#Here I try to print the updated holiday but nothing is printed (no text value)
除最后一行外,一切似乎都运行正常。我做了一些调试,并确认我的选择已经完成。在单击弹出页面上的ChangeHoliday按钮后,似乎主要网页没有更新。
任何想法或建议将不胜感激。
先谢谢你的帮助。
答案 0 :(得分:0)
这是一个简单的解决方案。脚本工作所需的唯一更改是将resynchronize选项添加到浏览器初始化。执行此操作后,脚本按预期工作。
browser = Celerity::IE.new(:resynchronize => true)