如何使用xpath访问/选择日历值

时间:2013-09-27 19:15:51

标签: xpath

我想选择/选择一个月的特定日期,我的屏幕会在屏幕上显示多个月(例如 - JAN,FEB,MAR)。

这是我的树形结构:

div class="MeCalendarMonthDay MeCalendarWeekDay3" 
style="width:14.285714285714286%;height:50px">
<span>14</span>
<input type="hidden" value="Wed Aug 14 2013">
</div>

我尝试了以下选项(我使用的是selenium测试自动化工具)

calender = driver.findElement(By.className("MeCalendarMonthNotSingle"));
date = calender.findElement(By.xpath("//div[@class='MeCalendarMonthName' and    
contains(.='Aug 2013')]"));
date.findElement(By.xpath("//input[@value = 'Tue Aug 13 2013']")).click();

我也试过

date.findElement(By.xpath("//input[@type='hidden' and value = 'Tue Aug 13   
2013']")).click();

但是,以上选项都不适用于我。你能帮我么 ?

以下选项有时会起作用。但是,它没有识别月份,因为有 页面上显示多个月。

date.findElement(By.xpath("//span[text()='13']")).click();`

1 个答案:

答案 0 :(得分:1)

这里有一些XPath解决方案。不确切知道要返回哪个元素:

选择来自@class的{​​{1}}和来自<div>的{​​{1}}。返回@value元素:

<input>

选择来自<input>的{​​{1}}和来自calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')]/input[contains(@value, 'Aug 14')]")); 的{​​{1}}。返回@class元素:

<div>

@value的{​​{1}}和<input>的{​​{1}}以及<div>的{​​{1}}选择。返回calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay') and input[contains(@value, 'Aug 14')]]")); calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')][input[contains(@value, 'Aug 14')]]")); 元素:

@class

<div>的{​​{1}}和text()的{​​{1}}以及<span>的{​​{1}}选择。返回@value元素:

<input>

如果您想要返回<input>元素:

选择来自calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay') and span = 14]/input[contains(@value, 'Aug 14')]")); calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')][span = 14]/input[contains(@value, 'Aug 14')]")); 的{​​{1}}和来自@class的{​​{1}}。返回<div>元素:

text()