selenium svg标签定位元素


背景:

近期在写ui自动化用例时,遇到问题,元素定位不了。初步尝试直接在页面中获取svg中包含元素的xpath,直接利用selenium方法访问,无法捕获到相关元素信息。

self.driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/section/div/div/div[2]/div[4]/div[2]/table/tbody/tr[1]/td[11]/div/svg[1]').click()

解决:

svgelementXpath = "//div[12]/ *[name()='svg']/*[name()='g']/*[name()='g'][2]/*[name()='g'][1]/*[name()='image']"
从svg元素开始,下面的元素都要以  *[name()='svg element'] 这种形式进行编写,selenium在执行的时候才能够捕获到元素信息。
在selenium点击svg形式的页面元素时,不能用普通的driver.find_element_by_xpath(svgelementXpath).click() 的方式进行点击,这样操作执行时会报错误信息。
 
需要以定义action的形式访问svg的元素信息。

```

from selenium.webdriver import ActionChains
fuweielementXpath = '//*[@id="app"]/div/div[2]/section/div/div/div[2]/div[4]/div[2]/table/tbody/tr/td[11]/div/*[name()="svg"][1]'
svgelem = self.driver.find_element_by_xpath(fuweielementXpath)
action2 = ActionChains(self.driver)
action2.click(svgelem).perform()

```

 

参考:http://blog.sina.com.cn/s/blog_53f023270101rykh.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM