0

我想选择/选择一个月的特定日期,我的屏幕在屏幕上显示多个月(例如 - 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();`
4

1 回答 1

1

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

@class<div>@value从中选择<input>。返回<input>元素:

calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')]/input[contains(@value, 'Aug 14')]"));

@class<div>@value从中选择<input>。返回<div>元素:

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>text()<span>@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')]"));

@class<div>text()<span>@value从选择<input>。返回<div>元素:

calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay') and input[contains(@value, 'Aug 14')] and span = 14]"));
calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')][span=14][input[contains(@value, 'Aug 14')]]"));

如果要<span>返回元素:

@class<div>@value从中选择<input>。返回<span>元素:

calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay')][input[contains(@value, 'Aug 14')]]/span"));
calender.findElement(By.xpath("//div[contains(@class,'MeCalendarMonthDay') and input[contains(@value, 'Aug 14')]/span"));
于 2013-09-27T19:56:48.487 回答