如何使用selenium </p>导航到同级<p>元素

时间:2014-02-19 21:01:17

标签: java selenium xpath selenium-webdriver

我正在尝试使用没有id / class属性的Selenium导航到兄弟<p>元素。这是我的HTML:

<div class="content1">              
    <div class="bold">                                              
        <a href="test">test</a>
    </div>
    <p>
        <span class="test two">Nuevo</span>
    </p>                                            

    <div class="bold2">  
        <a href="test">test</a>
    </div>
    <p>
        i want to get this text
    </p>
</div>

这是我的硒代码:

element = driver.findElement(By.xpath("content1/p[2]"));

任何人都可以帮我纠正我的硒代码吗?

3 个答案:

答案 0 :(得分:1)

您的XPath首先无效。您的意思是.//div[@class='content1']/p[2]吗?

请尝试

element = driver.findElement(By.xpath(".//div[@class='content1']/p[2]"));

这是另一个XPath,你也可以尝试一下,不需要索引。

element = driver.findElement(By.xpath(".//div[@class='content1']/div[@class='bold2']/following-sibling::p"));

请注意,如果HTML不是您正在测试的真实HTML,您可能会面临其他问题,上述XPath仅提供逻辑。

答案 1 :(得分:1)

选项#1 (假设这些是DOM中的第一个 <p>元素:

element = driver.findElements(By.tagName("p")).get(1);

选项#2

element = driver.findElement(By.xpath("//div[@class='content1']/p[2]"));

答案 2 :(得分:1)

我已经回答了类似的问题,可以帮到你:

Selecting Nth-of-type in selenium

如果您对CSS感兴趣,我会检查一下。如果您想知道如何将CSS与selenium一起使用,请查看此博文:http://ddavison.github.io/css/2014/02/18/effective-css-selectors.html