Selenium WebDriver获取列表中的子项

时间:2014-11-24 14:53:55

标签: selenium selenium-webdriver

我正在尝试访问列表中的项目,并且列表中包含子项目。 使用此代码,我可以获得列表项的引用:

WebElement actionBarElement = driver.findElement(By.id("top_action_bar"));

它只返回1个项目,它是列表项目本身而不是子项目。 我一直在尝试多种方式来访问childerns,但没有运气,例如我之后用过这一行:

List <WebElement> abe = actionBarElement.findElements(By.xpath("//*"));

我也试过了:

List <WebElement> actionBarElements = findElements(By.id("top_action_bar"));

并且只提出了1项 - 列表本身的参考,而不是儿童的参考。

似乎我还没有找到正确的方法,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以通过xpath一次性获取列表的元素:

List <WebElement> abe = actionBarElement.findElements(By.xpath('//ul[@id="top_action_bar"]/li'));

假设列表中包含ul - &gt; li标记。

答案 1 :(得分:1)

尝试使用此代码获取列表下的所有列表元素,其中包含id&#34; top_action_bar&#34; (假设这是唯一包含ID&#39; top_action_bar&#39;在您的页面中的列表)

List <WebElement> abe = driver.findElements(By.xpath("//*[@id="top_action_bar"]//li"));

您可以使用以下代码访问列表中的每个元素。

    for(int i=0;i<abe.size();i++){

        //abe.get(i) -> code for iterating through each element

}

更新25/11/14

List <WebElement> abe = driver.findElements(By.xpath("//a[@parent='actionbar']")); //This will fetch all 'a' elements having parent value as "actionbar"

您可以使用前面提到的for循环访问之后的元素。