我试图单击图表上的数据点。我拥有的代码是:
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)。其他元素将获得点击:
经过仔细检查,我发现了问题所在。较新的浏览器以某种方式生成数据点的方式有所不同,当选择使用我的代码选择的内容时,我看到:
Xpath选择的点位于两个塔的中间,因此硒无法尝试单击它。
作为参考,我在旧版本的Firefox上进行了相同的测试,结果并不感到惊讶,因为所选标记现在正好出现在塔的顶部:
问题:由于没有其他可能的选择器选择塔架的顶部(或塔架上的任何位置),因此是否可以使用新版chrome选择正确的图表值?也许有一些选择方法,然后总是单击左侧2 mm,以便我可以选择塔楼。
旧的Firefox版本:57.0.4
Chrome新版本:69.0.3497.100
这个问题与另一个问题的不同之处在于,我实际上没有可以选择单击的dom元素,在另一个问题中,dom元素存在但隐藏在另一个元素后面。