2014-11-24 31 views
0

我試圖通過模擬賬戶自動化Selenium webdriver java中Salesforce的賬戶創建頁面。我正在讀取D盤中excel文件的數據。月下拉式在selenium webdriver的datepicker中無法正常工作

在日期選擇器字段中,年下拉菜單正常工作,但月份下拉選擇無法正常工作。月份下拉菜單打開,所需的月份也會突出顯示,並且它也會到達並突出顯示頁面中所需的日期標籤,但隨後會跳回到當前月份,即11月份並從中選擇日期。

我無法理解此行爲。

String date, mon, year; 
    int month, day; 
    date = sh.getCell(27, 3).getContents(); 
    year = date.substring(6, 10); 
    month = Integer.parseInt(date.substring(0, 2)); 
    day = Integer.parseInt(date.substring(3, 5)); 
    month = month-1; 
    switch(month) 
    { 
     case 0 : mon = "January"; break; 
     case 1 : mon = "February"; break; 
     case 2 : mon = "March";  break; 
     case 3 : mon = "April";  break; 
     case 4 : mon = "May";  break; 
     case 5 : mon = "June";  break; 
     case 6 : mon = "July";  break; 
     case 7 : mon = "August"; break; 
     case 8 : mon = "September";  break; 
     case 9 : mon = "October";  break; 
     case 10 : mon = "November";  break; 
     case 11 : mon = "December"; break; 
     default : mon="Incorrect month input"; 
    } 
    System.out.println(mon); 

    Select dty; 
    driver.findElement(By.xpath(".//*[@id='00N9000000Ctc7X']")).click(); 
    dty = new Select(driver.findElement(By.xpath(".//*[@id='calYearPicker']"))); 
    dty.selectByVisibleText(year); 

    Select dtm; 
    driver.findElement(By.xpath(".//*[@id='calMonthPicker']")).click(); 
    dtm = new Select(driver.findElement(By.xpath(".//*[@id='calMonthPicker']"))); 
    dtm.selectByVisibleText(mon); 
    Thread.sleep(5000); 

    WebElement dp = driver.findElement(By.xpath(".//*[@id='datePicker']/div[2]")); 
    List<WebElement> colmn; 
    colmn = dp.findElements(By.tagName("td")); 
    int dat=0; flag=0; 

    for(WebElement we : colmn) 
    { 
     System.out.println(we.getText()); 
     dat = Integer.parseInt(we.getText()); 
     String clas = we.getAttribute("class"); 
     try 
     {     
      if((day==dat) && ((clas.equals("weekday") || (clas.equals("weekend"))))) 
      { 
       we.click(); Thread.sleep(5000); 
       flag=1; 
       break; 
      } 
     } 
     catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 

    } 
    if(flag==0) 
     System.out.println("Incorrect Date"); 
+0

您是否可以請提供您正在測試您的代碼的站點,以防萬一您的代碼被公開?否則,請提供上面的Datepicker的html代碼片段。 – Subh 2014-11-24 20:24:23

+0

我正在測試Salesforce網站,即www.salesforce.com,任何人都可以註冊並創建其帳戶並測試應用程序。 U可以通過https://developer.salesforce.com/創建帳戶,然後登錄進入帳戶創建頁面。有一個稱爲SLA到期日期的日期字段。這個日期選擇器開啓了。 – 2014-11-25 10:24:59

+0

此問題已解決。因此我在這裏關閉這個問題。 – 2015-01-12 06:35:01

回答

0

鑑於以下是Subh給出的評論,它正確回答了我的問題。

是的。您需要創建Select類的對象,如Select sel = new Select(driver.findElement(By.xpath("//xpath of the element")));,然後使用'selectByValue或selectByVisibleText或selectByIndex'方法來選擇正確的下拉值。另一方面,有時下拉不是通過使用「選擇」標籤來完成的,因此您必須首先單擊下拉列表,然後單擊下拉菜單中的結果選項。

相關問題