<div class="box box-0 box-hover-null">10828</div>
我在html文档中有一系列这样的文件,变量号为text()。
我需要找到文本值最高和最低的第一个div。
我当前的选择器:
//div[string-length(text()) > 0 and contains(concat(' ',normalize-space(@class),' '),' box-0 ')]
答案 0 :(得分:1)
<div class="box box-0 box-hover-null">10828</div>
我在html文档中有一系列这些,变量号为 text()。
我需要找到文本值最高和最低的第一个div。
据我所知,Selenium使用各自浏览器的XPath引擎-当前所有浏览器仅支持XPath 1.0。
因此,所需的是一个XPath 1.0表达式,该表达式选择第一个<div>
元素,其字符串值可转换为数字,并且该数字是所有此类<div>
数值中的最小值。
需要类似的XPath表达式,但该表达式将选择第一个具有最大数值的<div>
元素。
以下是两个这样的XPath表达式,它们选择了所需的<div>
元素:
具有最小数值的第一个<div>
元素:
(//div[number(.) = number(.)
and number(.) = //div[number(.) = number(.)
and not(number(.) > //div[number(.) = number(.)]/text())
]
]
)[1]
具有最大数值的第一个<div>
元素:
(//div[number(.) = number(.)
and number(.) = //div[number(.) = number(.)
and not(number(.) < //div[number(.) = number(.)]/text())
]
]
)[1]
这是基于XSLT 1.0的验证。下面的转换针对一个XML文档评估这两个XPath表达式,并将该评估的结果(选定的节点)复制到输出中:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
First node with Minimum value: <xsl:copy-of select=
"(//div[number(.) = number(.)
and number(.) = //div[number(.) = number(.)
and not(number(.) > //div[number(.) = number(.)]/text())
]
]
)[1]"/>
=======================
First node with Maximum value: <xsl:copy-of select=
"(//div[number(.) = number(.)
and number(.) = //div[number(.) = number(.)
and not(number(.) < //div[number(.) = number(.)]/text())
]
]
)[1]"/>
</xsl:template>
</xsl:stylesheet>
在此XML文档上应用此转换时:
<html>
<div class="box box-0 box-hover-null">100</div>
<div class="box box-1 box-hover-null">100</div>
<div class="box box-2 box-hover-null">0500</div>
<div class="box box-3 box-hover-null">00500</div>
<div class="box box-4 box-hover-null">300</div>
<div class="box box-5 box-hover-null">200</div>
</html>
产生了所需的正确结果:
First node with Minimum value: <div class="box box-0 box-hover-null">100</div>
=======================
First node with Maximum value: <div class="box box-2 box-hover-null">0500</div>
答案 1 :(得分:0)
获得最大价值
max(//div[@class='box box-0 box-hover-null'])
您可以使用
获取元素(//div[.=max(//div[@class='box box-0 box-hover-null'])][[@class='box box-0 box-hover-null'])[1]
获取最小值
min(//div[@class='box box-0 box-hover-null'])
您可以使用来获取元素
(//div[.=min(//div[@class='box box-0 box-hover-null'])][[@class='box box-0 box-hover-null'])[1]