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