Python+Selenium定位元素的方法
Python+Selenium有以下八种定位元素的方法:
1. find_element_by_id()
eg: find_element_by_id("kw")
2. find_element_by_name()
eg: find_element_by_name("wd")
3. find_element_by_class_name()
eg: find_element_by_class_name("bg s_btn")
4. find_element_by_tag_name()
eg: find_element_by_tag_name("input") -- 一般页面上重复标签比较多,所以很难通过标签名去区分不同的元素
5. find_element_by_link_text()
eg: find_element_by_link_text("hao123")
eg: find_element_by_link_text(u"新闻") -- 在中文前面加个小“u”可以有效的避免中文乱码的问题
6. find_element_by_partial_link_text()
eg: find_element_by_partial_link_text("一个很长的文本的一部分") -- 如果一个文本链接很长,可以只取其中一部分
7. find_element_by_xpath()
eg: find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input") -- 通过绝对路径定位
eg: find_element_by_xpath("//input[@autocomplete='off']") -- 通过元素任意属性定位
eg: find_element_by_xpath("//*[@class='bg s_btn']") -- 如果不想指定标签名也可以用星号(*)代替
eg: find_element_by_xpath("//form[@id='form']/span[2]/input") -- 通过层级和属性定位
eg: find_element_by_xpath("//input[@id='kw' and @class='su']/span/input") -- 可以使用逻辑运算符
8. find_element_by_css_selector()
eg: find_element_by_css_selector(".s_ipt") -- 通过class属性定位
eg: find_element_by_css_selector("#kw") -- 通过id属性定位
eg: find_element_by_css_selector("input") -- 通过标签名定位
eg: find_element_by_css_selector("span>input") -- 通过父子关系定位
eg: find_element_by_css_selector("input[autocomplete='off']") -- 通过属性定位
eg: find_element_by_css_selector("span.bg s_btn_wr>input#su") -- 组合定位
用By定位元素:
在使用 By 时需要将 By 类导入
from selenium.webdriver.common.by import By
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,u"新闻")
find_element(By.PARTIAL_LINK_TEXT,u"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
Python+Selenium定位元素的方法的更多相关文章
- python+selenium 定位元素的主要方法
selenium对web各元素的操作首先就要先定位元素,定位元素的方法主要有以下几种: 通过id定位元素:find_element_by_id("id_vaule") 通过name ...
- Python Selenium定位元素常用解决办法
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException), ...
- selenium定位元素的方法
1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = ...
- 【selenium学习笔记一】python + selenium定位页面元素的办法。
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- python + selenium定位页面元素的办法
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- Web自动化基础(一)使用Selenium定位元素
什么是元素?我们知道网页上有什么内容显示出来,比如一个按钮,一个输入框,一张图片,都可以理解成元素,这些元素是由html代码构成的,比如图片可以用<img>标签来展示,一个输入框可以用&l ...
- selenium 定位元素可以用多个findElement
selenium 定位元素可以用多个findElement,如driver.findElement(By.id"XXX").findElement(By.linkText(XXX) ...
- python中列表元素连接方法join用法实例
python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...
- python + selenium 练习篇 - 定位元素的方法
1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...
随机推荐
- 前端mock利器:randomjson
randomjson的应用场景 前后端分离时,前端根据后端提供的数据模型模拟后端请求.如果数据写死,每次返回的都一样,这个时候randomjson就能派上用场了.在前端规定数据类型,每次用random ...
- 编写高质量代码改善C#程序的157个建议——建议13: 为类型输出格式化字符串
建议13: 为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出.一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable.这对类型来 说,是一种主动实现的方式 ...
- Adorner的收集
Adorners Overview https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/adorners-overview ' ...
- Backup--查看备份的历史记录
--==================================================== --查看数据库备份的详细信息:时间存储地址最大/最小LSN SELECT * FROM m ...
- asp.net 设置分页
private const int PAGESIZE = 5; //定义每页有五行数据 private void FillPageList() { int pageCount = 0; // page ...
- EIP权限工作流平台-升级说明(2018-12-04)
表单生成器,文本框新增验证(默认验证及正则表达式) 列表查询支持复杂查询,支持文本框,下拉框,时间查询
- NSUserDefaults数据存储
前言 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在. 如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUs ...
- 第十一篇 logging模块
logging模块是Python中内置的很强大的一个日志模块,它可以帮我们记录程序运行的情况,对于后续排错有很好的帮助. logging模块定义了下表所示的日志级别,按照严重程度由低到高排列: 级别 ...
- 查看linux操作系统的版本等信息
1.查看操作系统是32位还是64位的命令: (1)getconf LONG_BIT (2)uname -a (3)uname -m (4)arch (5)file /sbin/init 2.查看操作系 ...
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境【转载】
本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.h ...