我有一个标签,让我们说
<td columnname="ID">DS199</td>.
现在,我必须根据属性 columnname 和标签的文本使用selenium找到此标记。 我用过的代码:
driver.findElement(By.xpath("//td[@columnname='ID' AND (text()='DS199')]"));
输出:
org.openqa.selenium.InvalidSelectorException:invalid selector: Unable to locate the element with the xpath expression //td[@columnname='ID' AND (text()='DS199')]
如果要在标记上验证多个条件,请告诉我获取webelement对象的正确方法。
答案 0 :(得分:1)
试试这个。也许你的文字中有一些前导或尾随空格
"//td[@columnname='ID'][normalize-space(text())='DS199']"
答案 1 :(得分:1)
它是and
,而不是AND
:
//td[@columnname='ID' and (text()='DS199')]
此外,您可能希望测试td
:
//td[@columnname='ID' and .='DS199']
如果您还想匹配,请说
<td columnname="ID"><b>DS199</b></td>
或者,如果您想要对空白进行标准化,则会更加健壮,
//td[@columnname='ID' and normalize-space()='DS199']