html - 如何使用 XPath 查找特定元素?

标签 html css xpath selenium-webdriver

<分区>

如何使用 xpath 找到选项 1?

注意:每次构建后都会生成id。

我试过了,但是不行:

/li[@class='itemL' and contains(text(),'option1'])

输入 HTML 片段

<div id="list-1721" class="x-list x-list-floating x-layer x-boundlist-default" ">
<div id="list-1721-listEl" class="x-list-list-ct" style="overflow: auto; height: auto;">
<ul>
<li class="x-list-item itemL" role="option">option1</li>
<li class="x-list-item itemL" role="option">option2</li>
</ul>
</div>

最佳答案

您尝试的 xpath 失败,因为 @class='itemL' 正在对类属性进行精确匹配。

您可以像对文本所做的那样对类属性使用 contains:

//li[contains(@class, 'itemL') and contains(text(), 'option1')]

请注意,这也会匹配类为“startitemL”、“itemLend”等的 li 元素。如果您需要防止这种情况发生,那么您将需要使用以下方法之一来检查整个单词。

在 xpath 1.0 中检查整个单词:

//li[contains(concat(' ', @class, ' '), ' itemL ') and contains(text(), 'option1')]

在 xpath 2.0 中检查整个单词:

//li[tokenize(@class,'\s+')='itemL' and contains(text(), 'option1')]

关于html - 如何使用 XPath 查找特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939500/

相关文章:

hadoop - 在 pig 中分离元组的元组

xml - XSLT 将新元素添加到 XML 的根元素

java - java中的转换,request.getParameter

javascript - 在使用 ajax 通过 html 表单发送之前验证电子邮件地址

jquery - 动态增加 Left 属性

itext - HTML 到 iTextSharp 行高转换

sql - SQL Server 中 XML 类型列的 XPATH 查询

html - 无法在 HTML5 页面上显示 unicode 字符

javascript - 当 float 部分为空时,从 JQuery 中的输入元素获取数值不起作用

javascript - 添加光标 : pointer to audio element