2012-04-12 5 views

答えて

2

1)入力フィールドに日付を書き込むことができ、カレンダーはアイコンのみです。あなたはカレンダーをクリックするだけでできている場合、それはもう少しトリッキーになり、この

public String threeDaysBefore(){ 
    String threeDaysBefore = ""; 
    Date date = new Date(); 
    Calendar cal = Calendar.getInstance(); 
    cal.setTime(date); 

    cal.add(Calendar.DAY_OF_YEAR, -3); 
    Date before = cal.getTime(); 
    SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm"); 
    threeDaysBefore = formatter.format(before); 
    return threeDaysBefore; 
} 

以降のコードで

WebElement calendarManualInput = driver.findElement...// find the manual input field 
    calendarManualInput.sendKeys(threeDaysBefore()); 

2のようなヘルパーメソッドが何か)を持つことができます。あなたはまだ文字列が必要ですが、ほとんど違いはありません:

public String threeDaysBefore(){ 
    String threeDaysBefore = ""; 
    Date date = new Date(); 
    Calendar cal = Calendar.getInstance(); 
    cal.setTime(date); 

    cal.add(Calendar.DAY_OF_YEAR, -3); 
    Date before = cal.getTime(); 
    SimpleDateFormat formatter = new SimpleDateFormat("dd"); 
    threeDaysBefore = formatter.format(before); 
    return threeDaysBefore; 
} 

しかし、上記はほとんど捕らえていません。日付が1.4の場合。 29.4と解釈される "29"を返します。それはあなたが起こりたくないことです。だから、後のコードでは、おそらくここで、この

//this will click three days before 
Date today = new Date(); 
Date minusThree = new Date(); 
Calendar now = Calendar.getInstance(); 
now.setTime(today); 
Calendar before = Calendar.getInstance(); 
before.setTime(minusThree); 
before.add(Calendar.DAY_OF_YEAR, -3); 
int monthNow = now.get(Calendar.MONTH); 
int monthBefore = before.get(Calendar.MONTH); 

if (monthBefore < monthNow){ 
    // click previous month in the calendar tooltip on page 
} 
WebElement dateToSelect = driver.findElement(By.xpath("//span[text()='"+threeDaysBefore()+"']")); 
dateToSelect.click(); 
+0

ソリューションme..thankxための1つの作品について – mahF

0

を行う必要があります私はあなたにその公式サイト「https://jqueryui.com/resources/demos/datepicker/default.html」からjqueryuiカレンダーを自動化するための私のorignalコードを示しています。

コピーのコードを貼り付けし、魔法のように働いて、それを参照してください:)

投票まであなたがそれを好きならは:)アバードGoyal氏

public class calendarHanding { 

static int targetDay = 4, targetMonth = 6, targetYear = 1993; 

static int currenttDate = 0, currenttMonth = 0, currenttYear = 0; 

static int jumMonthBy = 0; 

static boolean increment = true; 

public static void getCurrentDayMonth() { 

    Calendar cal = Calendar.getInstance(); 
    currenttDate = cal.get(Calendar.DAY_OF_MONTH); 
    currenttMonth = cal.get(Calendar.MONTH) + 1; 
    currenttYear = cal.get(Calendar.YEAR); 
} 

public static void getTargetDayMonthYear(String dateString) { 
    int firstIndex = dateString.indexOf("/"); 
    int lastIndex = dateString.lastIndexOf("/"); 

    String day = dateString.substring(0, firstIndex); 
    targetDay = Integer.parseInt(day); 

    String month = dateString.substring(firstIndex + 1, lastIndex); 
    targetMonth = Integer.parseInt(month); 

    String year = dateString.substring(lastIndex + 1, dateString.length()); 
    targetYear = Integer.parseInt(year); 

} 

public static void calculateToHowManyMonthToJump() { 

    if ((targetMonth - currenttMonth) > 0) { 
     jumMonthBy = targetMonth - currenttMonth; 

    } else { 
     jumMonthBy = currenttMonth - targetMonth; 
     increment = false; 
    } 
} 

public static void main(String[] args) throws InterruptedException { 
    // TODO Auto-generated method stub 
    String dateToSet = "16/12/2016"; 

    getCurrentDayMonth(); 
    System.out.println(currenttDate); 
    System.out.println(currenttMonth); 
    System.out.println(currenttYear); 

    getTargetDayMonthYear(dateToSet); 
    System.out.println(targetDay); 
    System.out.println(targetMonth); 
    System.out.println(targetYear); 

    calculateToHowManyMonthToJump(); 
    System.out.println(jumMonthBy); 
    System.out.println(increment); 

    System.setProperty("webdriver.chrome.driver", 
      "C:\\Users\\ashutosh.dobhal\\Desktop\\Software\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.navigate().to(
      "https://jqueryui.com/resources/demos/datepicker/default.html"); 
    driver.manage().window().maximize(); 
    Thread.sleep(3000); 

    driver.findElement(By.xpath("//*[@id='datepicker']")).click(); 

    for (int i = 0; i < jumMonthBy; i++) { 
     if (increment) { 
      driver.findElement(
        By.xpath("//*[@id='ui-datepicker-div']/div/a[2]/span")) 
        .click(); 
     } else { 
      driver.findElement(
        By.xpath("//*[@id='ui-datepicker-div']/div/a[1]/span")) 
        .click(); 
     } 
     Thread.sleep(1000); 

    } 

    driver.findElement(By.linkText(Integer.toString(targetDay))).click(); 

} 
}