Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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
Java 使用SeleniumWebDriver处理日期选择器_Java_Selenium Webdriver - Fatal编程技术网

Java 使用SeleniumWebDriver处理日期选择器

Java 使用SeleniumWebDriver处理日期选择器,java,selenium-webdriver,Java,Selenium Webdriver,我的网页上有两个日期选择器,分别是开始日期和结束日期。我需要点击两个日期,但当我搜索元素时,有相同的元素被称为。但是有一个唯一的元素名。我如何调用这些元素 日期选择器1 HTML代码:- <span>Start Date:</span> <input id="courseStartDate" class="date-range required hasDatepicker" type="text" size="20" value="" onchange="start

我的网页上有两个日期选择器,分别是开始日期和结束日期。我需要点击两个日期,但当我搜索元素时,有相同的元素被称为。但是有一个唯一的元素名。我如何调用这些元素

日期选择器1 HTML代码:-

<span>Start Date:</span>
<input id="courseStartDate" class="date-range required hasDatepicker" type="text" size="20" value="" onchange="startDateChanged()" name="courseStartDate">
<img class="ui-datepicker-trigger" src="../../images/Calender.png" alt="..." title="...">
<span>End Date:</span>
<input id="courseEndDate" class="date-range required hasDatepicker" type="text" size="20" value="" onchange="endDateChanged()" name="courseEndDate">
<img class="ui-datepicker-trigger" src="../../images/Calender.png" alt="..." title="...">
开始日期:
日期选择器2 HTML代码:-

<span>Start Date:</span>
<input id="courseStartDate" class="date-range required hasDatepicker" type="text" size="20" value="" onchange="startDateChanged()" name="courseStartDate">
<img class="ui-datepicker-trigger" src="../../images/Calender.png" alt="..." title="...">
<span>End Date:</span>
<input id="courseEndDate" class="date-range required hasDatepicker" type="text" size="20" value="" onchange="endDateChanged()" name="courseEndDate">
<img class="ui-datepicker-trigger" src="../../images/Calender.png" alt="..." title="...">
结束日期:

首先,
img
标记不是
input
标记的子标记,而是紧跟其后的标记-兄弟标记。另外,在第五次尝试中,您试图引用
img
alt
属性,因此您应该编写
@alt
,而不是
alt

我建议使用
class
属性而不是
alt
,如下所示:

1) 开始日期

(.//*[@id='courseStartDate']/following-sibling::img[@class='ui-datepicker-trigger'])[1]
2) 结束日期

查看有关以下同级和xpath轴的更多信息。

您可以使用
列表处理日期选择器:

  • 使用将年、月和日表中的所有值提取到
    列表中
  • 循环并比较
    列表
    的元素与输入:年、月和日
  • List yearList=驱动程序
    .findElement(By.xpath(“/html/body/div[3]/div[3]/table/tbody”))
    .findElements(按.tagName(“span”));
    对于(int i=0;i
    有关详细教程,请参阅以下博客文章:

    我尝试了以下操作,但仍然没有单击日历1的图像。driver.findelelement(By.cssSelector(“img[alt='…'”)))。单击();2.driver.findElement(由.cssSelector(“输入[id=courseStartDate]”)创建);3.driver.findElement(由.cssSelector(“输入[id='courseStartDate']))。单击();4.driver.findElement(按名称(“courseStartDate”)。单击();5.driver.findElement(By.xpath(“./*[@id='courseStartDate']]/img[alt='…']”)。单击();我尝试使用给定的代码并将@添加到第五次尝试中,但仍然不起作用。你能提供其他解决方案吗?请提供一个更大的代码示例,让我看看在哪里以及如何使用给定的解决方案。您的代码是否封装在try/catch块中?虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-我格式化了你的答案。它本质上只是你链接的博客文章的一个副本。不幸的是,这并不能回答所提出的问题。让我重新表述一下我对这个问题的理解:如何获取给定“日期选择器”的HTML元素?。而您的答案是:如何在表中查找给定的“日期”(
    date\u dd\u MM\u yyyy[2]
    )。请关注问题并进行咨询。