如何在webdriver中循环显示条形图元素?

时间:2014-12-03 09:18:11

标签: java eclipse selenium webdriver

Selecting relational highchart SVG images with Selenium

我最近问过上面的问题,我想点击一个高图中的一些元素,以便在我的自动化测试中完成一些功能。我现在已经解决了这个问题,但还有一个问题。在某些情况下,我会在高潮图上有3个小节;在其他人我可能有更多;或更少。显而易见,我编写的代码是限制性的,因为如果页面上的高级图表数量发生了变化,它就无法动态处理(我已经编写了下面的代码):

    public static void barChartSelector(InternetExplorerDriver driver)
{
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    WebElement parent = driver.findElement(By.className("highcharts-series-group"));
    List<WebElement> children = parent.findElements(By.tagName("rect"));
    children.get(0).click();
    children.get(1).click();
    children.get(2).click();
    children.get(3).click();
}

从概念上讲,我知道需要进行某种循环,这样如果我在一个有4个元素的高图上使用barChartSelector方法,那么该方法可以循环并处理它。同样,如果有另一个只有3个元素的高图,代码也应该处理这个问题。这只会使代码更具动态性和面向未来。

有没有人对实施上述方法的最佳方法有任何建议?

1 个答案:

答案 0 :(得分:2)

也许不是

 List<WebElement> children = parent.findElements(By.tagName("rect"));
    children.get(0).click();
    children.get(1).click();
    children.get(2).click();
    children.get(3).click();

你可以尝试

List<WebElement> children = parent.findElements(By.tagName("rect"));
for (WebElement cur : children) {
  cur.click();
}