2012-10-30 43 views
0

我有一個jQuery的日曆項目的開始日期。確定使用JQuery日曆達到特定日期所需的點擊量?

使用的Watir(自動化瀏覽器驅動器,用於紅寶石寶石),我有我想進入一組日期。

日曆開始日期始終是今天的日期,無論那是一天它被使用。我想知道是否有一種方法可以處理今天的日期,並使用用戶提供的指定日期來計算它們之間的月份差異。

這裏是日曆插件的例子:http://jqueryui.com/datepicker/

例如:

今天的日期爲30/10/2012,如果有那名啓動對20/12/2012項目,這將是從現在開始的2個月,所以2次點擊下個月按鈕。

有沒有辦法可以做到這一點?

+0

您是否正在測試壓光機?如果沒有,那麼直接設置文本字段可能會更好。 –

+0

同意 - 只有在附加到它的text_field被讀取時,我才與日曆交互。如果您沒有測試日曆本身,只需要以最簡單的方式設置日期即可。 –

+0

@JustinKo,測試應該模擬一個真正的用戶使用應用程序,所以是的測試將是日曆。我確實考慮過直接投入! – samayres1992

回答

1

你可以這樣做:

#End date converted to date object 
specified_date = '20/12/2012' 
end_date = Date.parse(specified_date) 

#Start date (today - 30/10/2012) 
today = Date.today 

#Determine difference in months 
number_of_months_up_to_today = (today.month + today.year * 12) 
number_of_months_up_to_end = (end_date.month + end_date.year * 12) 
clicks_required = number_of_months_up_to_end - number_of_months_up_to_today 
#=> 2 

基本上它是計算的月數自今年0,然後找到的差異。

2

這裏是我走近了類似的情況與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 
  1. 設置或搶日期。
  2. 點擊觸發該JSDatePicker對象
  3. 等到實際日曆彈出
  4. 的當月顯示的text_field,所以選擇今天的日期編號。

就你而言,你還需要設置月份。無論提示該用戶,或者選擇「今天」,理論是一樣的:

$month = Date::MONTHNAMES[Date.today.month] #etc 

僞代碼賺很多的假設(僅將來的日期,月份名稱日曆作爲文本顯示等):

while [email protected]?($month) 
    next_month_button.click 
end 

我沒有看到具體的好處我的方法與每月計算,當然,除非我們每月添加到日曆一天,你還是希望自己的代碼工作!