选择与硒的关系highchart SVG图像(Selecting relational highch

2019-10-21 08:27发布

按下面的截图我有哪些,当我点击,打开右边的柱状图左侧的柱状图。

这是什么呢,然后就是打开另一个条形图,我想点击一个元素上。 的问题是,所述的className是“Highcharts系列基团”,同样为我所用前一个元素定位器。 我已经把它贴在下面我想选择选项的截图(这是右侧的图)

请参阅下面的HTML,因为我不认为这是上面的清晰

<div id="controller-breakdown" class="two-by-two-chart" style="display: block;" data-highcharts-chart="1">
<div id="highcharts-2" class="highcharts-container" style="position: relative; overflow: hidden; width: 588px; height: 300px; text-align: left; line-height: normal; z-index: 0; font-family: "Lucida Grande","Lucida Sans Unicode",Verdana,Arial,Helvetica,sans-serif; font-size: 12px; left: 0.083313px; top: 0.916672px;">
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="588" height="300">
        <desc>Created with Highcharts 3.0.4</desc>
        <defs>
        <rect rx="5" ry="5" fill="#FFFFFF" x="0" y="0" width="588" height="300">
        <g class="highcharts-grid" zIndex="1">
        <g class="highcharts-grid" zIndex="1">
        <g class="highcharts-axis" zIndex="2">
        <g class="highcharts-axis" zIndex="2">
        <g class="highcharts-series-group" zIndex="3">
            <g class="highcharts-series highcharts-tracker" visibility="visible" zIndex="0.1" transform="translate(61,51) scale(1 1)" style="cursor:pointer;" clip-path="url(#highcharts-3)">
            <rect fill="#ECB631" x="67.5" y="32.5" width="124" height="183" stroke="#FFFFFF" stroke-width="1" rx="0" ry="0">
            <rect fill="#ECB631" x="325.5" y="118.5" width="124" height="97" stroke="#FFFFFF" stroke-width="1" rx="0" ry="0">
        </g>
        <g class="highcharts-markers" visibility="visible" zIndex="0.1" transform="translate(61,51) scale(1 1)">
        </g>

我所试图做的是找到父元素(DIV ID =“控制器故障”),并从那里钻到“G类=“highcharts系列highcharts跟踪器”,这样我可以选择‘矩形’之一。值点击条形图然而,因为这是我有问题,这样的SVG图像我试图在硒写的代码如下:

    public static void relationalBarChartSelector(InternetExplorerDriver driver)
{
    WebElement parent = driver.findElement(By.id("controller-breakdown"));
    List<WebElement> children = parent.findElements(By.tagName("rect"));
    children.get(0).click();
}

任何人都可以提供任何帮助,请?

原始代码

**

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

Answer 1:

如果你写的那个特定元素的XPath,然后在WebElement进行操作,它会work.The对此我提供工作正常进行me.you可以试试这个代码。 如果你想点击每一个矩形标签元素上,那么你可以使用一个for循环并通过增加变量代替1这是矩形[1]像矩形[1]。

public static void relationalBarChartSelector(InternetExplorerDriver driver)
{
    WebElement element = driver.findElement(By.xpath("//div[@id='highcharts-2']/svg/defs/g[6]/rect[1]"));
    element.click();
}


Answer 2:

尝试这个。 它会找到任何地方类“highcharts系列组”

public static void relationalBarChartSelector(InternetExplorerDriver driver)
{
    WebElement element = driver.findElement(
      By.xpath(".//*[@class='highcharts-series-group']"));
    element.click(); 
}


文章来源: Selecting relational highchart SVG images with Selenium