整理的selenium WebDriver提供的8种元素定位方法
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种元素定位方法相关推荐
- selenium自动化测试——常见的八种元素定位方法
selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...
- python+selenium笔记(一):元素定位方法
一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...
- 自动化(二)——八种元素定位方法
自动化(二) 一.元素定位 1)如何元素定位 二.元素定位方式 1)id定位 2)name定位 3) class_name定位 4) tag_name定位 5) link_text以及partial_ ...
- 测开系列Selenium Webdriver Python(21)--元素定位2
以上学习的是element的基本属性和方法,那么验证点添加的技巧和方式是什么呢?我们知道自动化的过程就是人的手工测试的过程,在手工测试中需要人来判断业务是否达到需求要求,那么在自动化脚本中就要加入程序 ...
- python元素定位的八种方法_selenium webdriver基于Python系列之八种元素定位方法
1.id.name.class name.tag name.link text.partial link text.xpath.css selector在 Python 语言中对应的定位方法如下: f ...
- selenium点击元素位置_Selenium 八种元素定位方法
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- Selenium—八种元素定位方法
前言: 在学习元素定位之前,我们最好能懂一点html的知识.我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素. 一.查看页面元素 用谷歌浏览器打开百 ...
- python怎么鼠标定位id_Selenium八种元素定位方法(Python)
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- Selenium自动化测试:8种元素定位+unittest框架设计
作者简介: 笔名,唐米.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracle等测 ...
最新文章
- OpenStack入门修炼之实战--实现阿里云ESC多FLAT网络(21)
- anaconda卸载重装matplotlib
- 如何做618数据复盘?你需要掌握这8大思路
- 机器学习理论与实战(十四)概率图模型02
- SpringMVC 中静态资源的处理
- ScrollView常用(暂时用上了的)代理方法
- (C/C++学习笔记) 十二. 指针
- 怎么使用Eclipse默认的keystore签名打包成Apk
- Who am I:最烧脑的社会工程学电影
- 机器学习课程笔记【十一】- 因子分析
- android滚动视图实例,android实现自定义滚动条
- 湖南联通云计算与IDC掀发展浪潮
- 第一届中国iPhone技术开发者交流大会-----chinapub技术沙龙第一期
- 安徽大学线性代数第二章习题册(详细解答)
- 使用medusa破解密码
- win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
- ICC2 user guide(二)Placement and Optimization
- 1055 集体照 Python实现
- Python pandas库|任凭弱水三千,我只取一瓢饮(5)
- linux命令--文件夹重命名