2016-04-13 12 views
0

22 Haziran 2015'i seçmeye çalışıyorum. Konseptim ilk önce Yılı kontrol edip o yıla geçip o yılki ayı kontrol edip ona geçip son olarak tarihi. Aşağıda benim takip kodum. jquery.com içinde tarih seçicijquery'de Tarih seçici için selenum kodu

package common; 

import java.util.List; 
import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.remote.RemoteWebDriver; 

public class Date2 { 

    public static void main(String[] args) throws InterruptedException { 
     String Date = "22-June-2015"; 
     String Splitter[] = Date.split("-"); 
     String Day = Splitter[0]; 
     String Month = Splitter[1]; 
     String Year = Splitter[2]; 
     int Year1 = Integer.parseInt(Year); 

     System.out.println(Day); 
     System.out.println(Month); 
     System.out.println(Year); 
     System.out.println("Int : "+Year1); 

     RemoteWebDriver driver; 

     System.setProperty("webdriver.chrome.driver", "./Drivers/chromedriver.exe"); 
     driver = new ChromeDriver(); 


     driver.manage().window().maximize(); 
     driver.get("http://jqueryui.com/datepicker/"); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 


     driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='content']/iframe"))); 
     driver.findElement(By.xpath("//input[@id='datepicker']")).click(); 

     String Month_Present = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/div/span[1]")).getText(); 
     String Year_Present = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/div/span[2]")).getText(); 
     System.out.println(Month_Present); 
     System.out.println(Year_Present); 

     int Year_Present1 = Integer.parseInt(Year_Present); 

     WebElement MoveBack_Calender = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/a[1]/span")); 
     WebElement MoveForward_Calender = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/a[2]/span")); 

     if (Year_Present1>Year1) { 
      do { 
       MoveBack_Calender.click(); 
      } while (Year_Present1==Year1); 
     } 
    } 

} 
+0

yani ne şimdi istiyor musun, başka bir sorunla mı karşı karşıya geliyorsun? –

+0

Evet, geri veya ileriye doğru hareket edemiyorum. Hata yok – Vijay

cevap

0

Merhaba çalışma kodunu

public class DataPicker bulabilirsiniz {

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

     System.setProperty("webdriver.chrome.driver", 
      "D:\\eclipseProject\\StackOverFlow\\chromedriver_win32 (1)\\chromedriver.exe"); 

     // up-to year present i have copy pasted everything form your question 

     WebDriver driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
     driver.get("http://jqueryui.com/datepicker/"); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 


     driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='content']/iframe"))); 
     driver.findElement(By.xpath("//input[@id='datepicker']")).click(); 

     String Month_Present = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/div/span[1]")).getText(); 
     String Year_Present = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div/div/span[2]")).getText(); 
     System.out.println(Month_Present); 
     System.out.println(Year_Present); 

     // now implementing code as per your question 

     // SOLUTION FIRST 
     // first solution is that you can pass simply value in the 
     // input date box as it is taking value simply just by typing 

     // driver.findElement(By.xpath("//input[@id='datepicker']")).sendKeys("06/22/2015"); 

     // SOLUTION SECOND 
     // there is no need to take Month and year separately 
     // hence talking them inside a single string 
     String Year_Month = driver.findElement(By.xpath(".//*[@class='ui-datepicker-title']")).getText(); 
     System.out.println(Year_Month); 

     // click the previous year button only if current 
     // year and month displayed is not May 2015 

     for(int i =0;i<12;i++){ 
      // checking if year is 2015 or not 
      Year_Month = driver.findElement(By.xpath(".//*[@class='ui-datepicker-title']")).getText(); 
      System.out.println(Year_Month); 
      if(!Year_Month.equals("May 2015")){ 
       driver.findElement(By.xpath("//*[@class='ui-icon ui-icon-circle-triangle-w']")).click(); 
      } 
     } 

     // now as we are inside the desired year month we can select date now 
     List<WebElement> dataForMonth4 = driver.findElements(By.xpath("//*[@data-month='4']/a")); 
     System.out.println("Total available dates to select in this month : " + dataForMonth4.size()); 

     for(int i=0;i<dataForMonth4.size();i++){ 
      System.out.println("Date is : " + dataForMonth4.get(i).getText()); 
      // now implement the logic of date selection 
      if(dataForMonth4.get(i).getText().equals("22")){ 
       dataForMonth4.get(i).click(); 
      } 
     } 
} 

}

Umut bu size Teşekkür yardımcı

+0

Teşekkürler Raj Onun için çalışıyor. Ama niyetim, vereceğim tarih ne olursa olsun taşımak ve tıklamak. 3-Mar-2014 veriyorum varsayalım. Bu tarihe geri dönmeli ve o tarihe tıklamalıdır. Eğer 9-Jun-2016 verirsem, ileriye doğru hareket etmeli ve o ayı aramalı ve tarihi tıklamalıdır. bunun için sadece benim kodumda, eğer mevcut yıl istenen tarihten daha büyükse durumu kontrol ettim, o zaman geri dönmeli ve eğer geçerli yıl, verilen tarihten daha az ise, ileriye doğru hareket etmelidir. İstediğim buydu. Eğer yanılıyorsan lütfen bana – Vijay

+0

önerdiğinizi sorunuza göre yaptım, evet yapılabilir ve biraz zaman alacağım zaman cevabımı güncelleyeceğim. Geri bildiriminiz için teşekkürler –

+0

ur kodu beklediğiniz için teşekkürler. Bu arada ben birçok yönden deneyeceğim – Vijay

İlgili konular