Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium-从日期选择器中选择未来日期_C#_Selenium_Selenium Webdriver_Datepicker_Logic - Fatal编程技术网

C# Selenium-从日期选择器中选择未来日期

C# Selenium-从日期选择器中选择未来日期,c#,selenium,selenium-webdriver,datepicker,logic,C#,Selenium,Selenium Webdriver,Datepicker,Logic,我正试图从日期选择器中选择一个未来的日期,但不知道如何去做 我需要提前14天选择日期,但日期选择器一次只显示一个日历月。图片已上载到以下链接 提前14天选择未来日期的逻辑是什么 ================================================================= 新信息 我更深入地研究了使用firebug的元素,datepicker被划分为行类。以下是datepicker xml输出的导出: <tr class="w27"> &l

我正试图从日期选择器中选择一个未来的日期,但不知道如何去做

我需要提前14天选择日期,但日期选择器一次只显示一个日历月。图片已上载到以下链接

提前14天选择未来日期的逻辑是什么

=================================================================

新信息 我更深入地研究了使用firebug的元素,datepicker被划分为行类。以下是datepicker xml输出的导出:

    <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();