Java 如何在selenium中找到具有相同xpath的匹配元素的匹配长度

Java 如何在selenium中找到具有相同xpath的匹配元素的匹配长度,java,selenium,xpath,Java,Selenium,Xpath,我是Selenium新手,希望找到匹配xpath的节点长度 例如: 我想用Selenium编写一个java代码来查找节点的长度。例如,如果我正在查找“tr”节点,我希望它的长度为4 xpath将是//html/body/table/tr您的xpath不正确。您还应该使用复数形式的findElements来查找多个元素。这将返回List,然后您只需调用size()即可获得标记的数量。试一试 int count = allocation.findElements(By.xpath("//htm

我是Selenium新手,希望找到匹配xpath的节点长度

例如:


我想用Selenium编写一个java代码来查找节点的长度。例如,如果我正在查找“tr”节点,我希望它的长度为4


xpath将是//html/body/table/tr

您的
xpath
不正确。您还应该使用复数形式的
findElements
来查找多个元素。这将返回
List
,然后您只需调用
size()
即可获得
标记的数量。试一试

int count = allocation.findElements(By.xpath("//html/body/table/tbody/tr")).size();

我给出了绝对路径,因为您提供的html中没有和其他标识符,但不推荐使用。

您的
xpath
不正确。您还应该使用复数形式的
findElements
来查找多个元素。这将返回
List
,然后您只需调用
size()
即可获得
标记的数量。试一试

int count = allocation.findElements(By.xpath("//html/body/table/tbody/tr")).size();
我给出了绝对路径,因为您提供的html中没有和其他标识符,但不推荐使用它。

在java中

用于计算行大小, 用于计算列大小, 你可以用另一种方法

List<WebElement> rows = tblData.findElements(By.tagName("tr"));
int rowCount  = rows.size();
List rows=tblData.findElements(按.tagName(“tr”));
int rowCount=rows.size();
在java中

用于计算行大小, 用于计算列大小, 你可以用另一种方法

List<WebElement> rows = tblData.findElements(By.tagName("tr"));
int rowCount  = rows.size();
List rows=tblData.findElements(按.tagName(“tr”));
int rowCount=rows.size();

如果从父节点进行遍历,则无需放置
/

下面的xpath也适用于您

/html/body/table/tbody/tr
绝对XPath 绝对XPath以根节点或正斜杠(/)开头。 使用绝对值的优点是,它可以非常快速地识别元素。 这里的缺点是,如果任何事情出错或在两者之间添加了其他标记,则此路径将不再有效

例如: 如果我们定义的路径是

1. html/head/body/table/tbody/tr/th
如果在正文和表格之间添加了标签,如下所示

2. html/head/body/form/table/tbody/tr/th
第一个路径不能作为中间添加的“form”标记使用

相对XPath

相对XPath是一种路径从您选择的节点开始的XPath,它不需要从根节点开始

它以双正斜杠(
/
)开头

语法:

//table/tbody/tr/th
使用相对xpath的优点是,您不需要提及长xpath,您可以从中间或中间开始

缺点是,当我们指定部分路径而不是(精确路径)时,识别元素将花费更多的时间


如果同一路径有多个元素,它将选择标识的第一个元素

如果从父节点进行遍历,则无需放置
/

下面的xpath也适用于您

/html/body/table/tbody/tr
绝对XPath 绝对XPath以根节点或正斜杠(/)开头。 使用绝对值的优点是,它可以非常快速地识别元素。 这里的缺点是,如果任何事情出错或在两者之间添加了其他标记,则此路径将不再有效

例如: 如果我们定义的路径是

1. html/head/body/table/tbody/tr/th
如果在正文和表格之间添加了标签,如下所示

2. html/head/body/form/table/tbody/tr/th
第一个路径不能作为中间添加的“form”标记使用

相对XPath

相对XPath是一种路径从您选择的节点开始的XPath,它不需要从根节点开始

它以双正斜杠(
/
)开头

语法:

//table/tbody/tr/th
使用相对xpath的优点是,您不需要提及长xpath,您可以从中间或中间开始

缺点是,当我们指定部分路径而不是(精确路径)时,识别元素将花费更多的时间


如果同一路径有多个元素,它将选择标识的第一个元素

尝试使用维度accounts=allocation.findElement(By.xpath(“td[2]/table/tbody/tr”))查找长度。getSize();但是维度没有给出正确的值,无法使用维度accounts=allocation.findElement(By.xpath(“td[2]/table/tbody/tr”).getSize()查找长度;但是维度没有给出正确的值我可以得到指定xpath的长度谢谢你的帮助我可以得到指定xpath的长度谢谢你的帮助