我正在尝试访问列表中的项目,并且列表中包含子项目。 使用此代码,我可以获得列表项的引用:
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项 - 列表本身的参考,而不是儿童的参考。
似乎我还没有找到正确的方法,有什么建议吗?
答案 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循环访问之后的元素。