Calendar 在网页上选择日期2014年8月13日;http://www.makemytrip.com" 从日历图标

Calendar 在网页上选择日期2014年8月13日;http://www.makemytrip.com" 从日历图标,calendar,selenium-webdriver,Calendar,Selenium Webdriver,网页: 我已经尝试过使用X-path,但是我没有得到这样的元素异常。代码如下: driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div[2]/div/a/span")).click(); /*DatePicker is a table.So navigate to each cell * If a particular cell matches value 13 then select it

网页:

我已经尝试过使用X-path,但是我没有得到这样的元素异常。代码如下:

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


    /*DatePicker is a table.So navigate to each cell   
       * If a particular cell matches value 13 then select it  
       */  
      WebElement dateWidget = driver.findElement(By.id(".//*[@id='ui-datepicker-div']/div[1]"));  
      List<WebElement> rows=dateWidget.findElements(By.tagName("tr"));  
      List<WebElement> columns=dateWidget.findElements(By.tagName("td"));

      System.out.println("Rows count :" + rows.size());
      System.out.println("Column count :" + columns.size());

      for (WebElement cell: columns)
      {  
          //Select 13th Date   
          if (cell.getText().equals("13"))
          {  
              cell.findElement(By.linkText("13")).click();  
              break;  
          }  
      }
driver.findelelement(按.xpath(“./*[@id='ui-datepicker-div']/div[2]/div/a/span”)。单击();
/*DatePicker是一个表。所以导航到每个单元格
*如果特定单元格与值13匹配,则选择它
*/  
WebElement dateWidget=driver.findElement(By.id(“./*[@id='ui-datepicker-div']]]/div[1]”);
列表行=dateWidget.findElements(按.tagName(“tr”));
列表列=dateWidget.findElements(按.tagName(“td”));
System.out.println(“行计数:+Rows.size());
System.out.println(“列计数:+columns.size());
for(WebElement单元格:列)
{  
//选择第13个日期
if(cell.getText()等于(“13”))
{  
cell.findElement(By.linkText(“13”))。单击();
打破
}  
}

请更改您的代码

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


/*DatePicker is a table.So navigate to each cell   
   * If a particular cell matches value 13 then select it  
   */  
WebElement dateWidget = driver.findElement(By.id(".//*[@id='ui-datepicker-div']/div[1]"));  
对此

driver.findElement(By.xpath("//a[@tabindex='35']")).click();
WebElement dateWidget = driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div[1]"));  

这里您使用了
id
而不是
xpath
。请更改它。

我尝试更新makemetrip网站:

WebElement dateWidget = driver.findElement(By.xpath("//div[@id='js-filterOptins']"));  

dateWidget= dateWidget.findElement(By.xpath("//div[@class='dateFilter hasDatepicker']/div/div"));


List<WebElement> columns=dateWidget.findElements(By.tagName("td"));

System.out.println("Column count :" + columns.size());

for (WebElement cell: columns)
{  
     //Select 16th Date   
     if (cell.getText().equals("16"))
     {  
         cell.findElement(By.linkText("16")).click(); 
         System.out.println(cell);
         break;  
     }  
}
WebElement-dateWidget=driver.findElement(By.xpath(“//div[@id='js-filterOptins']);
dateWidget=dateWidget.findElement(By.xpath(“//div[@class='dateFilter hasDatepicker']/div/div”);
列表列=dateWidget.findElements(按.tagName(“td”));
System.out.println(“列计数:+columns.size());
for(WebElement单元格:列)
{  
//选择第16个日期
if(cell.getText()等于(“16”))
{  
cell.findElement(By.linkText(“16”))。单击();
系统输出打印LN(单元);
打破
}  
}

Plz。。。让我知道如何处理xpath。您能告诉我更改xpath的原因吗?我想了解如何决定选择什么作为xpath。您需要检查DOM中的可见元素。您使用的此xpath无法找到所需的元素。希望这个解决方案对你有用。