WebDriver:通过CSSSelector或XPath查找元素

时间:2014-11-01 00:13:14

标签: selenium xpath webdriver

我在下一页上遇到元素<i class="angle-up"></i>时遇到问题。选择应取决于"data-id"值。提前致谢。

<li class="recent" data-to="3" data-off="23" data-id="5">
    <a class="collapse in" href="/board">
        <span>
            Board
        </span>
        <i class="angle-up"></i>
    </a>
</li>
<li class="" data-to="3" data-off="23" data-id="7">
    <a class="collapse in" href="/set">
        <span>
           Set
        </span>
        <i class="angle-up"></i>
    </a>
</li>

1 个答案:

答案 0 :(得分:0)

我认为如果该值依赖于数据ID,那么您可能需要将Xpath或Css选择器拆分为3部分,如下所示:

  

1部分= //的Li [@data_id =&#39;

     

Part2 =(使用适当的变量在运行时获取此值)

     

Part3 =&#39;] // @ [@class =&#39; angle-up&#39;]

现在您可以使用以下代码来使用元素

    public class TestElement {

    public static void main(String args[])
    {
        WebDriver driver= new FirefoxDriver();
        driver.get(YOUR INTERNAL URL HERE.);

        String elementPart1=//li[@data_id='
        String elementPart2=5       //keeping the id you are looking for
        String elementPart3=']//i[@class='angle-up']

        WebElement element = driver.findElement(By.xpath(elementPart1+elementPart2+elementPart3);

    }
}

在这里你可能会看到这样的xpath的一个例子是

//li[@data_id='5']//i[@class='angle-up']

另外,如果我建议您使用firefinder firebug扩展程序进行检查,以验证xpath是否正确。