selenium WebDriver提供的8种元素定位方法:
(1)find_element_by_id() :id 定位 ,顾名思义,就是通过标签的id属性值来定位元素
(2) find_element_by_name() :name 定位,顾名思义,就是通过标签的name属性值来定位元素
(3)find_element_by_tag_name() :tag 定位 ,通过标签名(tag name)定位,不太推荐此用法,因为一个页面会有很多相同的标签。
(4)find_element_by_class_name() :class 定位 ,顾名思义,就是通过标签的class属性值来定位元素。
(5)find_element_by_link_text() :link_text 定位 ,通过元素标签对之间的文字信息来定位元素。
(6) find_element_by_partial_link_text() :partial link 定位,是对上面link定位的补充,如果标签对之间的内容很长时,就取这部分文字的唯一标识的文字内容即可。
(7)find_element_by_xpath() :XPath 定位 ;利用元素属性定位、利用元素的绝对路径定位、利用层级与属性结合定位等
(8)find_element_by_css_selector():CSS 选择器可以较为灵活地选择控件的任意属性,一般情况下,CSS 定位速度比 XPath定位速度快。

下面以‘https://www.baidu.com/’为例写的demo:

from selenium import webdriver
import timedriver = webdriver.Chrome()  # 前提:安装了谷歌浏览器和驱动// 使用get方法,打开百度首页
driver.get('https://www.baidu.com')# find_element_by_id()方法定位页面上的元素
# send_keys()做输入操作
# driver.find_element_by_id('kw').send_keys('selenium')# find_element_by_name()方法定位页面上的元素
# driver.find_element_by_name('wd').send_keys('selenium')# find_element_by_class_name()方法定位页面元素
# driver.find_element_by_class_name('s_ipt').send_keys('selenium')# find_element_by_tag_name 通过标签名(tag name)定位百度输入框 不太推荐此用法,因为一个页面会有很多相同的标签
# driver.find_element_by_tag_name('input')# click() 单击操作
# driver.find_element_by_id('su').click()# find_element_by_link_text() 通过元素标签对之间的文字信息来定位元素
# driver.find_element_by_link_text('新闻').click()# find_element_by_partial_link_text()  是对上面link的补充,如果标签对之间的内容很长时,就取这部分文字的唯一标识的文字内容即可
# driver.find_element_by_partial_link_text('新').click()# xpath 通过元素的属性值来定位元素
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys('selenium')
# driver.find_element_by_xpath('//*[@id="su"]').click()'''
find_element_by_css_selector定位
CSS 选择器可以较为灵活地选择控件的任意属性,一般情况下,CSS 定位速度比 XPath定位速度快
css定位有很多种方法,这里就只介绍两种常用的
'''
# css定位  通过class定位
# driver.find_element_by_css_selector('.s_ipt').send_keys('selenium')
# driver.find_element_by_css_selector('.s_btn').click()# css定位  通过id定位
driver.find_element_by_css_selector('#kw').send_keys('selenium')
driver.find_element_by_css_selector('#su').click()# 强制等待3秒,为了看清楚执行效果
time.sleep(3)# 通过 quit()关闭浏览器
driver.quit()

当然,除了以上的8种写法,WebDriver 还提供了另外一套写法,即统一调用find_element()方法,通过 By 来声明定位,并且传入对应定位方法的定位参数。

使用find_element()定位元素demo如下:

import timefrom selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get('https://www.baidu.com')'''
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,"新闻")
find_element(By.PARTIAL_LINK_TEXT,"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
'''
driver.find_element(By.ID, 'kw').send_keys('selenium')
driver.find_element(By.ID, 'su').click()time.sleep(3)driver.quit()

整理的selenium WebDriver提供的8种元素定位方法相关推荐

  1. selenium自动化测试——常见的八种元素定位方法

    selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...

  2. python+selenium笔记(一):元素定位方法

    一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...

  3. 自动化(二)——八种元素定位方法

    自动化(二) 一.元素定位 1)如何元素定位 二.元素定位方式 1)id定位 2)name定位 3) class_name定位 4) tag_name定位 5) link_text以及partial_ ...

  4. 测开系列Selenium Webdriver Python(21)--元素定位2

    以上学习的是element的基本属性和方法,那么验证点添加的技巧和方式是什么呢?我们知道自动化的过程就是人的手工测试的过程,在手工测试中需要人来判断业务是否达到需求要求,那么在自动化脚本中就要加入程序 ...

  5. python元素定位的八种方法_selenium webdriver基于Python系列之八种元素定位方法

    1.id.name.class name.tag name.link text.partial link text.xpath.css selector在 Python 语言中对应的定位方法如下: f ...

  6. selenium点击元素位置_Selenium 八种元素定位方法

    前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...

  7. Selenium—八种元素定位方法

    前言: 在学习元素定位之前,我们最好能懂一点html的知识.我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素. 一.查看页面元素 用谷歌浏览器打开百 ...

  8. python怎么鼠标定位id_Selenium八种元素定位方法(Python)

    前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...

  9. Selenium自动化测试:8种元素定位+unittest框架设计

    作者简介: 笔名,唐米.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracle等测 ...

最新文章

  1. OpenStack入门修炼之实战--实现阿里云ESC多FLAT网络(21)
  2. anaconda卸载重装matplotlib
  3. 如何做618数据复盘?你需要掌握这8大思路
  4. 机器学习理论与实战(十四)概率图模型02
  5. SpringMVC 中静态资源的处理
  6. ScrollView常用(暂时用上了的)代理方法
  7. (C/C++学习笔记) 十二. 指针
  8. 怎么使用Eclipse默认的keystore签名打包成Apk
  9. Who am I:最烧脑的社会工程学电影
  10. 机器学习课程笔记【十一】- 因子分析
  11. android滚动视图实例,android实现自定义滚动条
  12. 湖南联通云计算与IDC掀发展浪潮
  13. 第一届中国iPhone技术开发者交流大会-----chinapub技术沙龙第一期
  14. 安徽大学线性代数第二章习题册(详细解答)
  15. 使用medusa破解密码
  16. win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
  17. ICC2 user guide(二)Placement and Optimization
  18. 1055 集体照 Python实现
  19. Python pandas库|任凭弱水三千,我只取一瓢饮(5)
  20. linux命令--文件夹重命名

热门文章

  1. AD导出Gerber
  2. 程序设计-模拟图书馆管理系统
  3. LVS负载均衡群集 --NAT模式实战部署(图文详解)
  4. GAMES104-游戏引擎的动画基础
  5. storm32和pixhawk_STORM32云台板调参教程 新人可参考 大师请指点
  6. java 栈的基本介绍
  7. 面试珠玑 C语言中union与struct的区别及sizeof的计算方式
  8. 【2022年高教杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(四)
  9. Android自定义View来实现解析lrc歌词同步滚动、上下拖动、缩放歌词等功能
  10. 用java代码实现pdf文档转word