Selenium Java:无法从日期选择器中选择日期

我试图从自定义日期选择器中选择一个日期,但它不起作用。 

http://img1.mukewang.com/635111040001d56d10440466.jpg

http://img1.mukewang.com/6351110b0001fd8506950261.jpg

HTML 与它的外观截图一起粘贴如下。


我曾尝试过


WebElement dateWidget = driver.findElement(By.className("ui-state-default"));

List columns=(List) dateWidget.findElements(By.tagName("ui-state-default"));

for (WebElement cell: columns){

      //Select 13th Date 

      if (cell.getText().equals("13")){

            cell.findElement(By.linkText("13")).click();

            break;

      }

}

甚至尝试等待命令以便找到定位器但没有成功。


WebDriverWait(driver,100).until(ExpectedConditions.elementToBeClickable(By.cssSelector


两者都不起作用,因为它无法识别元素可以帮助我解决这个问题。如果可能的话,我们甚至可以单击上一个和下一个,以便我们也可以单击一些以前的日期吗?


函数式编程
浏览 86回答 2
2回答

梦里花落0921

您确实使用错误By.tagName("ui-state-default"),ui-state-default是一个类而不是标签,您的代码在下面一无所获:WebElement&nbsp;dateWidget&nbsp;=&nbsp;driver.findElement(By.className("ui-state-default")); List&nbsp;columns=(List)&nbsp;dateWidget.findElements(By.tagName("ui-state-default"));下面的代码在第一个月返回a文本13 :driver.findElement(By.xpath("//div[@id='ui-datepicker-div']//a[.='13']")).click();如果日期选择器使用以下选项,您可以选择上个月findElements:List<WebElement>&nbsp;dates&nbsp;=&nbsp;driver.findElements(By.xpath("//div[@id='ui-datepicker-div']//a[.='13']")); dates.get(2).click();您也可以使用data-month属性:driver.findElement(By.xpath("//div[@id='ui-datepicker-div']//td[@data-month='3']/a[.='13']")).click();

MMMHUHU

使用以下 xpath,您可以轻松解决问题,无需任何麻烦//table[@class='ui-datepicker-calendar']//td[@data-month='2']//a[.='15']在这里,我选择了第2个月和第15天来选择日期。您可以更改数据月份以选择另一个。您也可以使其成为动态的。我已经在 chrome 控制台中对此进行了测试,我的自动化脚本对我来说效果很好要验证在 chrome 控制台中粘贴以下代码并点击 inter>$x("//table[@class='ui-datepicker-calendar']//td[@data-month='2']//a[.='15']")它将返回第二个月日期 15 的元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java