使用webElement(Selenium)将所有' -tags内容作为列表获取

时间:2018-03-01 12:50:35

标签: java selenium-webdriver

我得到一个webElement:

Forbidden, you don't have permission to access the image on server

元素的Html类似于:

WebElement myElement = browser.findElement(By.cssSelector(".nd_list"));

web元素有更多的html-body,只是为了制作一个视图...这个想法是我想要一些动态的东西。我想从<div class="nd_list"> <div>etc</div> <table> <span>2</span> </table> <table> <span>3</span> </table> </div> 获取所有<span>个元素,并将它们的内容放入int数组中。 预期结果:myElement 我该怎么办?

2 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是创建一个CSS选择器,以获取您引用的SPAN .nd_list的所有DIV子项。它就像循环遍历该集合一样简单,使用.getText()从每个元素获取文本,然后将String转换为int。我在你的HTML上测试了下面的代码并且它有效。

List<WebElement> spans = driver.findElements(By.cssSelector(".nd_list span"));
int[] numbers = new int[spans.size()];
for (int i = 0; i < spans.size(); i++)
{
    numbers[i] = Integer.parseInt(spans.get(i).getText());
    System.out.println(numbers[i]);
}

答案 1 :(得分:-1)

要从 myElement 获取所有<span>元素并将其内容放入整数数组并打印它们,您可以使用以下代码块:

List<WebElement> myElement = driver.findElements(By.cssSelector(".nd_list table > span"));
List<Integer> myList = new ArrayList<Integer>();
for(WebElement ele:myElement)
    myList.add(Integer.parseInt(ele.getAttribute("innerHTML")));
Integer[] myArray = myList.toArray(new Integer[0]);
System.out.println(myArray);