Java Selenium如何从多个相同的父元素中选择子元素

时间:2018-02-06 18:53:49

标签: java selenium parent-child

我试图从网页上获取联系信息。每个联系人都列在info课程中。我想要的信息位于nadrprimary phone类中。我想要做的是迭代每个info元素,检查它是否有这3个子元素,如果所有3元素存在,则将它添加到ArrayList。

下面是html

中基本父子关系的一个例子
<div class = "info">
    <h2 class = "n">Header</h2>
        <div class = "info-section info-primary">
             <p class = adr> address here </p>
        <ul class = "phones> phone# </u>
        </div> 
</div>

感谢那些帮助我的人,我只想得到我想要的孩子元素。但是,我需要检查并确保每个父元素都包含这些子元素,然后将它们添加到我的列表中。

例如:一个联系人可能是

<div class = "info">
    <h2 class = "n">Company Name</h2>                                         
        </div> 
</div>

由于没有列出电话或地址,我不想从网页上获取这些电话或地址,然后转到下一个联系人。

1 个答案:

答案 0 :(得分:0)

由于您需要的所有信息都存在于标签和类的html上,因此您只需要编写一个能够过滤它的选择器,而不仅仅是使用Java代码来执行此操作。

如果没有完整的HTML,很难想象或想到为您编写选择器的更好方法(CssSelector或XPath仍然看起来更好的选项)。因此,您可以尝试以下CssSelector,或根据您的需要进行调整:

driver.findElements(By.cssSelector(".info > h2 .info .adr, .info > h2 .phones"));