selenium的定位方法-单元素定位
selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID、NAME、CLASS_NAME、TAG_NAME、CSS_SELECTOR、XPATH、LINK_TEXT、PARTIAL_LINK_TXEXT来进行定位,本文以实例作为说明
以chrom打开百度首页为例子,右键选择-检查,打开开发者工具,点击
选中搜索栏,可以定位到以下代码,以该搜索栏定位来分析单元素定位方法。

1.find_element_by_id:
通过元素属性ID来定位到元素,方法是find_element_by_id,以上述输入框为例,它的ID属性是kw,代码如下:
browser.find_element_by_id("kw").send_keys("selenium")
2.find_element_by_name:
通过元素属性NAME来定位到元素,方法是find_element_by_NAME,以上述输入框为例,它的NAME属性是wd,代码如下:
browser.find_element_by_name("wd").send_keys("selenium")
3.find_element_by_class_name:
通过元素属性class_name来定位到元素,方法find_element_by_class_name,以上述输入框为例,它的class_name属性是s_ipt,代码如下:
browser.find_element_by_class_name("s_ipt").send_keys("selenium")
4.find_element_by_xpath:
通过XPATH定位输入框,方法是find_element_by_xpath,获取的方式是定位到输入框的元素属性后,可以右键点击该属性,选中copy xpath选项,代码如下:
browser.find_element_by_xpath('//*[@id="kw"]').send_keys("selenium")
5.find_element_by_link_text:
link_text用于对超链接的处理,在HTML代码中主要是以标签a对应,方法是find_element_by_link_text,以点击百度首页的“新闻”链接为例子,代码是<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>,那么可以使用以下方法定位:
browser.find_element_by_link_text("新闻").click().
6.find_element_by_partial_link_text:
partial_link_text也用于超链接的处理,它和link_text类似,只不过是用于模糊匹配,例如匹配“新闻”,操作的时候只填写“闻”就可以定位到,方法:find_element_by_partial_link_text,代码:
browser.find_element_by_partial_link_text("闻").click()
7.find_element_by_css_selector:
当使用ID、NAME属性无法定位到元素时,可以使用CSS_SELECTOR来定位,方法是find_element_by_css_Selector,还是以百度输入框为例,右键单击copy,选中copy selector,代码如下:
browser.find_element_by_css_selector("#kw").send_keys("selenium") 以上方法是总结单个元素定位的7种方法,个人比较喜欢使用XPATH进行定位,XPATH语法可以参考https://zhuanlan.zhihu.com/p/29436838。
selenium的定位方法-单元素定位的更多相关文章
- selenium的定位方法-多元素定位
在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页 ...
- selenium定位方法-iframe元素定位方法
在自动化测试中,如果无法定位到一个元素,那么最大的可能是定位的元素是在iframe框架中,iframe对象代表一个HTML的内联框架,在HTML中,iframe每出现一次,一个iframe对象就会被创 ...
- selenium python (二) 元素定位方法
定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系.定位就不是问题:实在不行就xpath和css大部分偶可以定位到. webdriver定位的方法是通过一个By类,By类中有 ...
- Selenium定位二 --多个元素定位方法 和层级定位方法
定位多个元素: findElements()方法可以返回一个符合条件的元素List 组 如: public void hitUpdatePersonnel(WebDriver driver, int ...
- Selenium定位一 --单个元素定位方法
Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver ...
- UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)
Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...
- Selenium:WebDriver简介及元素定位
参考内容:官方API文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于python ...
- 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)
浏览器的基本操作与元素定位 通过上一章学习,我们已经学会了如何设置驱动路径,如何创建浏览器对象,如何打开一个网站,接下来我们要进行一些复杂的操作比如先打开百度首页,在打开博客园,网页后退,前进等等,甚 ...
- Selenium with Python 003 - 页面元素定位
WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...
随机推荐
- 深入理解Java内存模型中的虚拟机栈
深入理解Java内存模型中的虚拟机栈 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都会有各自的用途,以及创建和销毁的时间,有的区域会随着虚拟机进程的启 ...
- 【HTML】html5 canvas全屏烟花动画特效
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- ASP.NET MVC 方法View返回的两种方式
1.参数为字符串类型 例如我们在地址栏输入http://localhost:56431/Test/Index,会查找TestController类下的Index方法并执行,如下图 当我们返回字符串类型 ...
- Selenium3+python自动化016-Selenium Grid
一.Selenium Grid介绍 1.概念 Selenium Grid组件专门用于远程分布式测试或并发测试,通过并发执行测试用例的方式可以提高测试用例的执行速度和效率,解决界面自动化测试执行速度过慢 ...
- GNU Radio无线通信嗅探基础
文章内容简介 1.使用哪些grc模块完成我们的嗅探工作 2.如何选择参数以获取最完美的波形 3.如何从波形还原回数据 我接下来会使用电视棒(RTL-SDR)嗅探一个固定码遥控锁开发组件. 我使用如下的 ...
- Java架构师资料
Java架构师ZHONGVIP课程资料链接 2017年第一学期的资料链接:(视频和文档是一起的) 一.互联网工程专题 链接:https://pan.baidu.com/s/1PGE ...
- Java体系结构
java程序运行过程图 文章中内容大多来自该处Java虚拟机规范----JVM体系结构 - Java初级码农 - 博客园 JDK体系 JDK体系结构图 JDK.JRE.JVM之间的关系 JDK:Jav ...
- Wannafly Camp 2020 Day 1A 期望逆序对 - 概率期望
分类讨论即可 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 5005; ...
- nvm —— Node版本管理工具
nvm下载 下载地址 下载nvm-setup.zip文件 nvm安装 1.以管理员身份运行install.cmd文件,设置文件路径 root: C:\Users\Administrator\AppDa ...
- dgango 反射
相关 """ 反射 由字符串反向找 变量.函数.类 """ import sys class Person(object): def __i ...