Celerity - 帮助popup_browser选择列表,在主浏览器上更新div文本

时间:2010-12-24 22:01:12

标签: screen-scraping celerity

我正在屏幕抓取一个页面,其中包含一个链接,该链接产生一个弹出窗口,该窗口由选择列表和执行选择的按钮组成。目标是单击主页面上的链接,在弹出窗口中进行选择,单击链接以确认选择,然后在主网页上查看新选择。

以下是我在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按钮后,似乎主要网页没有更新。

任何想法或建议将不胜感激。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

这是一个简单的解决方案。脚本工作所需的唯一更改是将resynchronize选项添加到浏览器初始化。执行此操作后,脚本按预期工作。

browser = Celerity::IE.new(:resynchronize => true)