今天写脚本发现页面有svg结构,里面的元素无法定位,查找很多资料,然后就记录下来
初步尝试直接在页面中获取svg中包含元素的xpath,直接利用selenium方法访问,无法捕获到相关元素信息。
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();
EOF
本文作者:久曲建的测试窝
本文链接:https://www.cnblogs.com/longronglang/p/7476557.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君
原文:https://blog.51cto.com/15009374/2557431