最近使用HtmlUnit來實作自動預約功能,如此就不必在當下的時間點與其他人在忙碌的網頁
內搶資源(非針對訂票,別誤會XD,無利益關係),但要預約的新項目(select option),通常是
在過了當天後才會出現,因此程式就必需能夠在那邊幫我守著,如此一來就不用一直盯著
它同時不斷的按F5囉!總之就是不用辛苦的守候(揪甘心ㄟ),雖然還是搶的到XD
針對這個功能的實現,可以去查閱HtmlPage下的refresh method,使用起來很簡單,如下:
form為當下的page取得的,而這個form內我針對了select name = "date"的下拉選單,看是否有
我要的項目出現了,如果沒有的話就會throw exception,此時設定一分鐘的等待,然後程式
在做page的refresh,再重新去找該項目是否出現了!
內搶資源(非針對訂票,別誤會XD,無利益關係),但要預約的新項目(select option),通常是
在過了當天後才會出現,因此程式就必需能夠在那邊幫我守著,如此一來就不用一直盯著
它同時不斷的按F5囉!總之就是不用辛苦的守候(揪甘心ㄟ),雖然還是搶的到XD
針對這個功能的實現,可以去查閱HtmlPage下的refresh method,使用起來很簡單,如下:
while(refresh){
try{
form.getSelectByName("date").getOptionByValue(reserveDate).setSelected(true);
refresh = false;
System.out.println(reserveDate+" 存在!");
HtmlSubmitInput submitBtn = form.getInputByValue("查詢");
reservesite = submitBtn.click();
}catch(ElementNotFoundException e){
if(!printOnce){
System.out.println(reserveDate+" 找不到...等待中");
}
Thread.sleep(60000);
reserv_page = clearPageCache(chrome, root_url.concat(webpage), true);
reserv_page = (HtmlPage) reserv_page.refresh();
form = reserv_page.getForms().get(0);
printOnce = true;
}
}
form為當下的page取得的,而這個form內我針對了select name = "date"的下拉選單,看是否有
我要的項目出現了,如果沒有的話就會throw exception,此時設定一分鐘的等待,然後程式
在做page的refresh,再重新去找該項目是否出現了!
留言
張貼留言