C# Selenium-从日期选择器中选择未来日期
我正试图从日期选择器中选择一个未来的日期,但不知道如何去做 我需要提前14天选择日期,但日期选择器一次只显示一个日历月。图片已上载到以下链接 提前14天选择未来日期的逻辑是什么 ================================================================= 新信息 我更深入地研究了使用firebug的元素,datepicker被划分为行类。以下是datepicker xml输出的导出:C# Selenium-从日期选择器中选择未来日期,c#,selenium,selenium-webdriver,datepicker,logic,C#,Selenium,Selenium Webdriver,Datepicker,Logic,我正试图从日期选择器中选择一个未来的日期,但不知道如何去做 我需要提前14天选择日期,但日期选择器一次只显示一个日历月。图片已上载到以下链接 提前14天选择未来日期的逻辑是什么 ================================================================= 新信息 我更深入地研究了使用firebug的元素,datepicker被划分为行类。以下是datepicker xml输出的导出: <tr class="w27"> &l
<tr class="w27"> <tr class="w28"> <td id="startCalendarDiv_t_cell14" class="calcell wd0 d10 previous calcellleft">10</td> <td id="startCalendarDiv_t_cell15" class="calcell wd1 d11 previous">11</td> <td id="startCalendarDiv_t_cell16" class="calcell wd2 d12 previous">12</td> <td id="startCalendarDiv_t_cell17" class="calcell wd3 d13 previous">13</td> <td id="startCalendarDiv_t_cell18" class="calcell wd4 d14 previous">14</td> <td id="startCalendarDiv_t_cell19" class="calcell wd5 d15 today selected selectable"> <a class="selector" href="#">15</a> </td> <td id="startCalendarDiv_t_cell20" class="calcell wd6 d16 selectable calcellright"> </tr> <tr class="w29">
<td id="startCalendarDiv_t_cell21" class="calcell wd0 d17 selectable calcellleft">
<td id="startCalendarDiv_t_cell22" class="calcell wd1 d18 selectable">
<td id="startCalendarDiv_t_cell23" class="calcell wd2 d19 selectable">
<td id="startCalendarDiv_t_cell24" class="calcell wd3 d20 selectable">
<td id="startCalendarDiv_t_cell25" class="calcell wd4 d21 selectable">
<td id="startCalendarDiv_t_cell26" class="calcell wd5 d22 selectable">
<td id="startCalendarDiv_t_cell27" class="calcell wd6 d23 selectable calcellright">
</tr>
<tr class="w30">
有什么线索可以做吗?逻辑是:
查找突出显示的日期元素
获取本例中的文本值13
在13=27的基础上加上14
查找本例中的月份和年份2016年7月
获取本例中的最后日期2016年7月31日
如果上述第3项超过2016年7月的最后日期,则减少该最后日期,并增加1个月。
查找带有第6条文本的元素,并确保您所在的月份与第6条确定的月份相同
----------更新新信息后更新--------------
若类包含空格字符,则不能使用By.ClassName。相反,要在类中查找今天,请使用Xpath:
driver.FindElement(By.XPath("//td[contains(@class,'today')]"));
这只是Java代码,与日历选择器无关 只需在代码中使用此脚本,并使用“newDay”字符串使用SendKeys输入日期框
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date date = new Date();
String todaysDate = dateFormat.format(date);
System.out.println(todaysDate);
String month=todaysDate.substring(0,2);
String day=todaysDate.substring(3,5);
int monthValue=Integer.parseInt(month);
int dayValue=Integer.parseInt(day);
if(dayValue+14>31)
{
int temp= 31-dayValue;
dayValue=14-temp;
monthValue=monthValue+1;
}
else
{
dayValue=dayValue+14;
}
String newDay = monthValue+"/"+dayValue+"/"+"2016";
System.out.println(newDay);
driver.findElementby.xpathDateBox.sendKeysnewDay 是正确的,但是使用了旧类并且工作太辛苦了
java.time
该框架内置于Java8及更高版本中。这些类取代了旧的麻烦的日期时间类,如java.util.date、.Calendar和java.text.SimpleDateFormat
要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释
大部分java.time功能都在中向后移植到Java6和Java7,并在中进一步适应Android
本地日期
该类表示一个仅限日期的值,不包含一天中的时间和时区
LocalDate localDate = LocalDate.of( 2016 , 7 , 13 );
LocalDate twoWeeksLater = localDate.plusWeeks( 2 );
如果您的日期选择器小部件尚未更新以使用java.time类型,则可以查询LocalDate对象的各个部分
int year = localDate.getYear();
int month = localDate.getMonthValue(); // The method `getMonth` returns an object from the `Month` enum rather than an integer.
int dayOfMonth = localDate.getDayOfMonth();
1:你试过什么吗?2:你的结果是什么?3:给我们看看你的代码。4:向我们展示这个日历背后的HTML代码。什么语言?你能提供网页链接或发布HTML代码吗?问题是如何查找突出显示的项目。是否有使用c或selenium查找突出显示日期的选项?sendkeys不起作用,因为日期所在的文本框是只读的
LocalDate localDate = LocalDate.of( 2016 , 7 , 13 );
LocalDate twoWeeksLater = localDate.plusWeeks( 2 );
int year = localDate.getYear();
int month = localDate.getMonthValue(); // The method `getMonth` returns an object from the `Month` enum rather than an integer.
int dayOfMonth = localDate.getDayOfMonth();