2016-12-21 8 views
0

jqueryui.comサイトにあるdatepickerでカスタム日付を選択しようとしていますが、その年を処理することはできますが、月は私が使用しているコードを見つけるworking.Pleaseではありません: - 目的は日付ピッカーで日付を選択する場合セレンを使用してjquery datepickerの月を選択できません

private static void PickDate(WebDriver driver, String day, String mon, String year) throws Exception { 
    while (year != driver.findElement(By.cssSelector("span.ui-datepicker-year")).getText()) 
    { 
     if (Integer.parseInt(year) < Integer.parseInt(driver.findElement(By.cssSelector("span.ui-datepicker-year")).getText())) 
     { 
      driver.findElement(By.cssSelector("a.ui-datepicker-prev")).click(); 
      System.out.println(driver.findElement(By.cssSelector("span.ui-datepicker-month")).getText()); 
     } 
     else if (Integer.parseInt(year) > Integer.parseInt(driver.findElement(By.cssSelector("span.ui-datepicker-year")).getText())) 
     { 
      driver.findElement(By.cssSelector("a.ui-datepicker-next")).click(); 
     } 
    } 
    while (mon != (driver.findElement(By.cssSelector("span.ui-datepicker-month")).getText())) 
    { 
     if (driver.findElement(By.cssSelector("span.ui-datepicker-month")).getText() != "January") 
     { 
      driver.findElement(By.cssSelector("a.ui-datepicker-prev")).click(); 
     } 
     if (mon != driver.findElement(By.cssSelector("span.ui-datepicker-month")).getText()) 
     { 
      driver.findElement(By.cssSelector("a.ui-datepicker-next")).click(); 
     } 
    } 

答えて

0

、私はむしろ、前後クリックよりも、スクリプトを実行使用します。 何かのように:):

((JavascriptExecutor) driver).ExecuteScript("$('#datepicker').datepicker('setDate', new Date(year, month, day))") 

あなたがして、前/次のボタンをクリックします:あなたのコードは非常に複雑に見えます

ので、私は、私は信じている、別のアプローチを提供したいと思いますそれははるかに簡単になります。

前/次ボタンをクリックすると、1ヶ月前/後に移動することに注意してください。だから、あなたが最初に選択したい日付(月と年)とDatePickerの現在の表示された日付との差の何ヶ月を計算すればよいのでしょうか。あなたはJavaで記述する場合

、あなたがのようなものを使用することができます。

month_diffとその符号に基づいて
YearMonth selectDate = YearMonth.of(year, month); // year, month are integer 
int dp_Year = Integer.parseInt(driver.findElement(By.cssSelector("span.ui-datepicker-year")).getText()); 
int dp_Month = // convert it yourself 
YearMonth dp_Date = YearMonth.of(dp_Year, dp_Month); 
int month_diff = dp_Date.until(selectDate, ChronoUnit.MONTHS); 

(+または - )、あなたは上をクリックする必要がどのボタンを知っていると何回します。 私は試用するjavaを持っていませんが、私は上記のコードがうまくいくことを願っています。

+0

jqueryui.com datepickerは、前のボタンと次のボタンを使用して移動するため、その機能を使用するコードを記述する必要があります。感想を聞かせてください。 –

+0

日付を選択するのではなく、前のボタンと次のボタンをテストしたいですか?私は上記のような日付を選択する方法を書いています(例えば、2015年3月12日、次のようなテストがあります:次のボタンを2回クリックして、月と年が2016年2月であることを確認します)以前のボタンのテスト –

+0

私はJavascriptについて多くのアイデアを持っていません。必要な年月に達するまで前のボタンまたは次のボタンをクリックするコードを書いたかったのですが、ここで助けてください。 –

関連する問題