无法在'Document'上执行'evaluate',错误的xpath表达式

问题描述 投票:0回答:2

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

我有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.

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

java selenium xpath
2个回答
0
投票

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

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

0
投票

text()是一个函数,而不是参数。尝试以下之一:

//*[contains(text(),"+whichDay+") AND contains(@data-month,"+whichMonth+")]
© www.soinside.com 2019 - 2024. All rights reserved.