【问题标题】:XPath to get date from date pickerXPath 从日期选择器获取日期
【发布时间】:2021-06-18 14:14:54
【问题描述】:

我正在尝试从日历中获取第一个活动日期,

<td class=" ui-datepicker-unselectable ui-state-disabled ">
<span class="ui-state-default">18</span></td>
<td class=" " data-handler="selectDay" data-event="click" data-month="4" data-year="2021">
<a class="ui-state-default" href="#">19</a></td>

在上面的示例中,19 是第一个活跃日。但是我不确定如何打印该值。我已经尝试了几件事

driver.findElement(By.xpath("(//a[@class='ui-state-default' and @href='#'])[1]")).getText()

                         OR

driver.findElement(By.xpath("(//td[not(contains(@class,' ui-datepicker-unselectable '))]/..//a[@href])[1]")).getAttribute("innerText");

这两个都打印 2 而不是 19。我想要一个 xpath 来打印值 19

我可以在这里使用一些帮助。谢谢。

【问题讨论】:

  • 为什么日期月份是 data-month="4" ?
  • 我认为他们从 0=1 月、1=2 月开始,所以 5 月 4 日。
  • 可以给我网址吗?
  • 您确定输出为 2 而不是无效的 xpath 错误吗?
  • @itronic1990 : xpath 不是无效的,可能是不正确的。

标签: java selenium xpath


【解决方案1】:

文本 19 的 XPath:

//td[@data-handler='selectDay']/a/text()

【讨论】:

  • selenium.InvalidSelectorException:无效选择器:xpath 表达式“//td[@data-handler='selectDay']/a/text()”的结果是:[object Text]。它应该是一个元素
  • @SheikhRahman 你试过了吗: //td[@data-handler='selectDay']/a 然后调用 getText() ?
【解决方案2】:

你可以试试这个 xpath。检查您的元素是否不在 iframe 或 shadow DOM 中。

String text = driver.findElement(By.xpath("//a[@class='ui-state-default' and  @href='#']")).getText();

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多