背景:

近期在写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()

```

获取SVG元素:

WebElement element = driver.findElement(By.xpath(sLocator)); //sLocator like "//*[name()='svg']/*[name()='line'][2]"
点击SVG事件
new Actions(driver).click(element).build().perform();

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

selenium svg标签定位元素相关推荐

  1. selenium之find_element_by_xpath定位元素

    selenium之find_element_by_xpath定位元素 一 方法 selenium为定位元素提供了较多方法,大致分为单元素定位和多元素定位. # 查找单个元素:find_element_ ...

  2. python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...

  3. Selenium Tips - CSS定位元素

    Selenium Tips - CSS定位元素 原文: http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-sele ...

  4. selenium定位svg标签下元素

    问题描述: 使用Xpath方法对svg下元素进行定位,会发现无法定位到svg下的元素 Xpath写法:driver.find_element(xpath,"//*[@id='userinfo ...

  5. svg标签内元素的xpath定位方式

    关于svg的标签定位,我们通常使用//标签名称来进行定位,但是假如是svg标签的话使用//svg的方式就无法进行定位了,比如下方代码,使用//svg来定位的话是定位不到的 <svg data-v ...

  6. java selenium一一操作定位元素

    java selenium操作定位元素 1.元素选择策略 1.1.使用选择器的提示 2.定位元素 3.定位多个元素 4.相对定位 4.1.above() 1.元素选择策略 WebDriver 中有 8 ...

  7. python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome ...

  8. Selenium+iframe准确定位元素

    简单介绍 我们发现该网站有两个框架: 网页代码如下所示: 我们发现iframe对应着单独的一个框架,因此我们定位元素时,要判断该元素有没有嵌套在iframe框架中. 程序示例 以天猫登陆界面为例,网址 ...

  9. Selenium使用xpath定位元素

    参考资料: [web自动化测试]xpath元素定位 核心用法 接下来是使用 xpath 必须掌握的核心知识点,只要掌握好这些知识点,基本上能定义到想要的元素. //input[@name='accou ...

最新文章

  1. 雷达图(python)
  2. auot lisp 选择集处理_第64集 python机器学习:用预处理进行参数选择
  3. form、document.all[].value的数字处理
  4. TypeScript里的类型合并操作符
  5. 中国企业飞鸽传书市场
  6. Nvidia Jetson TX2+Intel Realsense D435i跑ORB_SLAM3
  7. Ubuntu 16.04 apt 国内源
  8. classpath java配置_Java环境变量中classpath是必须配置吗?
  9. 微机实验报告4 数码转换程序实验
  10. vb.net 画多个矩形_电气原理图和接线图识图方法,电气接线图怎么画?
  11. linux内核编程之内核定时器
  12. HustOJ 基础搭建教程
  13. Leetcode(934)——最短的桥
  14. 常犇_专访丨《河神》制片人常犇:走夜路不怕黑,做好剧别怕累
  15. Vultr Debian系统如何重置ROOT管理员密码
  16. 多任务学习——【ICML 2018】GradNorm
  17. 怎么做二维码更简单?这款二维码生成器了解一下
  18. CSS3 3D transform
  19. 如何用计算机模拟光的传播,一种模拟激光辐射颗粒的数值建模方法与流程
  20. html图片要上下居中显示,CSS图片垂直居中最简单的方法推荐

热门文章

  1. dbforge studio for oracle 注册,dbForge Studio for Oracle
  2. openGauss 上海 Meetup:把企业级数据库能力带给用户
  3. Java编程中忽略这些细节,Bug肯定找上你
  4. 实战案例丨GaussDB for DWS如何识别坏味道的SQL
  5. 华为云ModelArts2.0来袭
  6. 一条数据的HBase之旅,简明HBase入门教程2:数据模型
  7. 基于华为云CSE微服务接口兼容常见问题
  8. Head First设计模式读书笔记四 简单工厂 工厂模式 抽象工厂模式
  9. LeetCode-145:二叉树的后序遍历
  10. PHP foreach如何判断是数组最后一个元素