无法对“文档”执行“评估”,xpath表达式错误

时间:2019-12-13 10:40:20

标签: java selenium xpath

我有日历,我想选择一个合适的日期,每天都会执行测试,并且我有采用今天日期的方法。

我有WebElement pickDay,它应该找到想要的日期,HTML代码是:

<td class="class" <data-hanlder="selectDay" data-month="5" data-year="2018">
<a class="classX">5</a>
</td>

和xPath表达式是(例如):

String whichMonth = "5"
String whichDay = "5"
day = driver.findElement(By.xpath("//*[contains(@text(),"+whichDay+") AND (@data-month,"+whichMonth+")]"));

但是intellij一直告诉我:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(@text(),5) AND (@data-month,5)]' is not a valid XPath expression.

我真的不知道这个表达式有什么问题。

2 个答案:

答案 0 :(得分:3)

1)text()是一个函数,而不是参数。 @此处不需要

2)请勿在一个月内使用contains()以避免混乱(例如1、10、11、12)

尝试以下方法:

//*[@data-month="+whichMonth+"]/a[text()="+whichDay+"]

答案 1 :(得分:0)

请尝试执行以下操作,因为您的xpath似乎缺少撇号:

option-1