以下是我使用 JSdatepicker 处理类似情况的方法:
$today = Time.now.strftime("%e").gsub(" ", "") #one digit day of month without leading space
@browser.text_field(:id => /dateAvailable/).click
Watir::Wait.until(60) {@browser.div(:id => /dateAvailable_popup_cal/).td(:text => $today).exists?}
@browser.div(:id => /dateAvailable_popup_cal/).td(:text => $today).click
- 设置或获取日期。
- 单击触发 JSDatePicker 对象的 text_field
- 等到日历实际弹出
- 显示当前月份,因此选择今天的日期编号。
在您的情况下,您还需要设置月份。无论是提示用户,还是选择“今天”,原理都是一样的:
$month = Date::MONTHNAMES[Date.today.month] #etc
做出大量假设的伪代码(仅未来日期、日历上显示为文本的月份名称等):
while !@jquerytablewindow.text.include?($month)
next_month_button.click
end
与每月计数相比,我没有看到我的方法有什么特别的优势,除非当然我们在日历上增加了一个月,并且您仍然希望您的代码正常工作!