gpt4 book ai didi

java - 如何获取子 div id,它们直接是一个父 div 下的 child ?

转载 作者:行者123 更新时间:2023-11-28 13:18:42 25 4
gpt4 key购买 nike

如果我有如下所示的标记,我想从其父 div 中单独访问每个 eigth div,并使用 for 循环打印其 id。

<div class=abc>
<div id="parent">
<div id="one">
<div id=........</div>
<div id=........</div>
<div id="two">
<div id=........</div>
<div id=........</div>
<div id="three">
<div id=........</div>
<div id=........</div>
<div id="four">
<div id=........</div>
<div id=........</div>
<div id="five">
<div id=........</div>
<div id=........</div>
<div id="six">
<div id=........</div>
<div id=........</div>
<div id="seven">
<div id=........</div>
<div id=........</div>
<div id="eight">
<div id=........</div>
<div id=........</div>
</div>
</div>

但是当我打印时(在 Java 中),八个 div 中每一个下的每个 div id 也在打印。如何在一个 for 循环中只获取每八个 div 的 id?我正在使用 selenium Web Driver 自动化网站。我试过这样:

List<WebElement> eightdivs = driver.findElements(By.cssSelector("#abc div:nth-child(n)"));
for(WebElement eachdiv : eightdivs)
{
System.out.println(eachdiv.getAttribute("id"));
}

最佳答案

选择器:

#abc div:nth-child(n)

#abc 中选择所有 div 元素,它们是其父元素的第 n 个子元素。空格是后代选择器,这意味着父代可以是 #abc 或其中的任何内容。这意味着应该选择 all 您的 div 因为它们都是其父元素的第 n 个子元素(尽管您的父元素是 .abc#parent,但不是 #abc,因此您使用的选择器实际上将返回nothing

你应该把#abc改成#parent,直接在#parent下使用子选择器> >,并删除 :nth-child(n) 部分,因为它是多余的:

List<WebElement> eightdivs = driver.findElements(By.cssSelector("#parent > div"));

for (WebElement eachdiv : eightdivs)
{
System.out.println(eachdiv.getAttribute("id"));
}

关于java - 如何获取子 div id,它们直接是一个父 div 下的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14825406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com