2014-11-24 29 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'方法来选择正确的下拉值。另一方面,有时下拉不是通过使用“选择”标签来完成的,因此您必须首先单击下拉列表,然后单击下拉菜单中的结果选项。

相关问题