2016-07-15 9 views
1

Ich muss das Datum aus dem kleinen Fenster auswählen und unten ist das Beispiel von HTML-Code. Kann mir bitte jemand helfen, ein Datum mit CSSSelector oder auf andere Weise zu wählen, die diese Aufgabe am besten erfüllt?Selenium WebDriver CSS Selector Hilfe - für die Auswahl Datum

<td class=" " onclick="DP_jQuery_1468593787056.datepicker._selectDay('#dp1468593787059',11,2016, this);return false;"> 
<a class="ui-state-default" href="#">1</a> 
</td> 
<td class=" " onclick="DP_jQuery_1468593787056.datepicker._selectDay('#dp1468593787059',11,2016, this);return false;"> 
<a class="ui-state-default" href="#">2</a> 
</td> 
<td class=" ui-datepicker-week-end " onclick="DP_jQuery_1468593787056.datepicker._selectDay('#dp1468593787059',11,2016, this);return false;"> 
<a class="ui-state-default" href="#">3</a> 

bei Fragen bitte anfragen.

danke

+1

prüfen funktionieren sollte [diese] (https://www.seleniumeasy.com/selenium-tutorials/working- mit Datum-Picker-Kalender-Using-Webdriver) und [dies] (http://learn-automation.com/handle-calender-in-selenium-webdriver/) – Madhan

Antwort

0

Für JQueryUI DatePicker Diese

public void selectDate(int day, int month, int year) { 
     int currentYear = Integer.valueOf(driver.findElement(By.xpath("//td[@data-year]")).getAttribute("data-year")); 
     int currentMonth = Integer.valueOf(driver.findElement(By.xpath("//td[@data-month]")).getAttribute("data-month")); 

     Boolean isNext = (year == currentYear && month >= currentMonth) 
       || year > currentYear; 

     String navTo = isNext ? "next" : "prev"; 

     String dayXpath = "//td[@data-year='" + year + "' and @data-month='" + month + "'][a[text()='" + day + "']]"; 

     Boolean found = false; 
     do { 
      List<WebElement> dayEl = driver.findElements(By.xpath(dayXpath)); 
      if (!dayEl.isEmpty()) { 
       dayEl.get(0).click(); 
       found = true; 
       break; 
      } 
     } while (navigateTo(navTo)); 

     if (!found) { 
      System.out.println("Couldn't Find the date"); 
     } 

    } 

    public Boolean navigateTo(String nav) { 
     List<WebElement> navigate = driver.findElements(By.xpath("//a[@data-handler='" + nav + "']")); 
     if (!navigate.isEmpty()) { 
      navigate.get(0).click(); 
      return true; 
     } else { 
      System.out.println("not found" + nav); 
     } 
     return false; 
    } 

Nutzungs

selectDate(26, 6, 1992);