今天写脚本发现页面有svg结构,里面的元素无法定位,查找很多资料,然后就记录下来
SVG包含一些图形元素,比如line,rect,circle等,很多情况下我们可以点击SVG上的元素触发一些event,比如打开context menu、在一个pie里选择一个portion等。但是SVG在html看来是一个单独的元素,我们怎么点击svg里的元素呢?下面记录下 Firefox和Chrome上的方法(其他browsers没有试)
解决方案:
用xpath找到元素,新建一个Actions点击就好了,要注意的是定位svg元素要用xpath的name()函数,比如这个locator://svg/line[2],要用//*[name()='svg']/*[name()='line'][2]"代替
代码示例:
WebElement element = driver.findElement(By.xpath(sLocator)); //sLocator like "*[name()='svg']/*[name()='line'][2]" new Actions(driver).click(element).build().perform();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。