硒无法选择元素,因为不存在直接选择器

时间:2018-10-11 11:49:48

标签: selenium google-chrome firefox webdriver

我试图单击图表上的数据点。我拥有的代码是:

public void select(int datapoint) {
        getWrappedElement()
                .findElement(By.cssSelector(".wk-chart-area"))
                .findElements(By.xpath("*[local-name() = 'g']")).get(0)
                .findElements(By.xpath("*[local-name() = 'rect']"))
                .get(datapoint)
                .click();
    }

此代码与旧版本的Firefox一起正常工作,但是新版本的Firefox和chrome不起作用,错误为:

  

org.openqa.selenium.WebDriverException:未知错误:元素在点(644,   628)。其他元素将获得点击:

经过仔细检查,我发现了问题所在。较新的浏览器以某种方式生成数据点的方式有所不同,当选择使用我的代码选择的内容时,我看到: the point is in the middle of the two towers

Xpath选择的点位于两个塔的中间,因此硒无法尝试单击它。

作为参考,我在旧版本的Firefox上进行了相同的测试,结果并不感到惊讶,因为所选标记现在正好出现在塔的顶部: Selected marker appears at the top of the chart

问题:由于没有其他可能的选择器选择塔架的顶部(或塔架上的任何位置),因此是否可以使用新版chrome选择正确的图表值?也许有一些选择方法,然后总是单击左侧2 mm,以便我可以选择塔楼。

旧的Firefox版本:57.0.4

Chrome新版本:69.0.3497.100

这个问题与另一个问题的不同之处在于,我实际上没有可以选择单击的dom元素,在另一个问题中,dom元素存在但隐藏在另一个元素后面。

0 个答案:

没有答案