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个元素的高图,代码也应该处理这个问题。这只会使代码更具动态性和面向未来。
有没有人对实施上述方法的最佳方法有任何建议?
答案 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();
}