1、前言
最近在实现UI自动化测试,发现有些元素定位不了,特此来记录一下,也许有不对的地方,欢迎指正。
我说定位不了的元素正是svg,在网上查了一通,发现也有很多小伙伴遇到这个问题。然后试了各种方法,什么By.CLASS_NAME ; By.CSS_SELECTOR等等都定位不了,后面是使用了Selenium库中的ActionChains类来模拟鼠标点击操作才把这个问题解决了。
2、网页结构
先来看一下网页结构,如下图
可以看到,有一个svg 标签,里面还有个use元素。一开始我就想要定位这个svg标签,怎么都定位不到。
3、解决方法
该svg的xpath为如下:
/html/body/div[1]/section/section/section/main/div/div/div/div[4]/div/div/div/div/div[2]/div[1]/div[1]/div[1]/div[3]/div/div[1]/div/table/tbody/tr[1]/td[5]/div/svg
如果使用传统方法,直接把xpath复制进去,那肯定是不行的,selenium无法定位到改元素的。
需要把xpath改写,改写后的xpath如下: