Selecting relational highchart SVG images with Selenium

我最近问了上述问题,因此我想单击highchart中的某些元素以完成自动化测试中的某些功能。我现在解决了这个问题,但是还有一个问题。在某些情况下,我的海图上会有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个元素的高位图表,则代码也应处理此问题。这只会使代码更具动态性和面向未来。

是否有人对实现上述目标的最佳方法有任何建议?

最佳答案

也许代替

 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();
}

07-24 09:45
查看更多