1、id定位
find_element_by_id() 通过id属性定位元素,如果id是动态变化的话不能用id来进行定位

2、name定位
find_element_by_name() 通过name属性定位元素,不过有时候一个页面中会有多个name名相同的,这时就不能用name来定位啦

3、class定位
find_element_by_class_name() 通过class属性定位元素

4、tag定位
find_element_by_tag_name() 通过tag name来定位元素,这里的tag name是指元素的标签,如<input> 、<div> 、<a>等等

5、link定位
find_element_by_link_text() 通过元素标签对之间的文本信息来定位元素。这个定位是专门用来定位文本链接的。如网页中的超链接,链接标签<a>

6、partial link定位
find_element_by_partial_link_text() 通过元素标签对之间的部分文本信息来定位元素

7、xpath定位 find_element_by_xpath()
(1)绝对路径定位
一级一级往上找,或者是从html一层一层往下找
(2)利用元素属性定位
使用id name class type 等等元素属性来定位,只要是元素属性都可以,只要能唯一标识一个元素
(3)层级与属性结合
如果元素本身没有可以唯一标识元素属性值的,可以找上一级(或上上级)的元素属性
(4)使用逻辑运算符
如果一个属性不能唯一区分,可以通过逻辑运算符and来连接多个属性来查找元素
注:火狐浏览器如果装了firepath插件的,可在选择元素后右击复制xpath路径,也可以打开firebug直接查看路径


8、css定位find_element_by_css_selector()
(1)通过class属性来定位 点号(.)表示通过class元素定位
(2)通过id属性来定位 井号(#)表示id元素定位
(3)通过标签名来定位 标签名重复概率大
1)父子关系定位
find_element_by_css_selector("span>input")
2)属性定位
find_element_by_css_selector('[type="submit"]')
3)组合定位
find_element_by_css_selector("form.fm>span>input.s_ipt")
备注:css语法可以通过firepath获得


9、用By定位元素
都使用find_element()方法,该方法有两个参数,第一个是定位类型,第二个参数是定位的具体方式:
driver.find_element(By.ID,"kw")
注意:在使用By之前需要引用对应的By类包

10、定位一组元素(8种)
find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_name()

len() 用来计算元素的个数
pop() 用于获取列表找那个的一个元素(默认为最后一个)
pop参数值的意思,由0开始,0代表第一位,1代表第二位,以此类推...-1也是默认值,代表最后一个
checkbox.html

checkbox.py

http://www.cnblogs.com/eastmount/p/4810690.html

Python-selenium 元素定位的更多相关文章

  1. python selenium 元素定位(三)

    上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到 ...

  2. python+selenium元素定位——8种方法

    定位元素,selenium提供了8中元素定位方法: (1)find_element_by_id() :html规定,id在html中必须是唯一的,有点类似于身份证号 (2)find_element_b ...

  3. python+selenium 元素定位--iframe

    1. 一般webdriver要操作页面元素需要在Top Window的状态下,如下: 2.当浏览器显示iframe时,用正常的元素定位是没有效果的,需要将页面装换到iframe下再对页面元素进行操作 ...

  4. python+selenium元素定位之XPath学习02

    XPath 语法 XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 ...

  5. python+selenium元素定位之XPath学习01

    参考文档1:https://www.w3school.com.cn/xpath/xpath_syntax.asp 参考文档2:https://www.runoob.com/xpath/xpath-tu ...

  6. python+selenium元素定位之CSS学习02

    参考文档:https://www.runoob.com/cssref/css-selectors.html CSS选择器用于选择你想要的元素的样式的模式. "CSS"列表示在CSS ...

  7. python+selenium元素定位之CSS学习01

    参考文档:https://www.w3school.com.cn/cssref/css_selectors.asp 选择器 例子 例子描述 CSS .class .intro 选择 class=&qu ...

  8. python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转。

    python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转. 如果多次定位和click(),有时候会跳转. 我遇到很多次就是很郁闷,有人说,操作太快的,页 ...

  9. Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法

    Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法   之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...

  10. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

随机推荐

  1. hdu1532 最大流板子题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目给出源点和漏点,还有一些边,要求源与漏之间的最大流,我采用了Edmonds Karp算法,该 ...

  2. hdu3336 Counting the string kmp的next数组的应用

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3336/ 题意就是要求一个字符串的所有前缀在字符串中出现的次数之和,我们容易想到kmp中的next数组,next[ ...

  3. centos 安装activeMq

    Apache ActiveMQ是一个免费的开源消息代理和集成模式服务器.它支持来自JAVA.c++.C.Python.Perl.PHP等多种语言的客户端和协议.它提供了许多功能,如消息组.虚拟目的地. ...

  4. hdu2732 最大流+拆点

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2732 题目给定一个场景,有n*m个方格,每个方格代表一个柱子,一个柱子可以承受不同次数的跳跃,开始时图 ...

  5. MongoDB操作符之$elemMatch

    问题 如果MongoDB 数据库集合中仅存在一条记录 { "_id" : ObjectId("5e6b4ef546b5f44e5c5b276d"), " ...

  6. 北邮OJ 89. 统计时间间隔 java版

    89. 统计时间间隔 时间限制 1000 ms 内存限制 65536 KB 题目描述 给出两个时间(24小时制),求第一个时间至少要经过多久才能到达第二个时间.给出的时间一定满足的形式,其中x和y分别 ...

  7. 01.为什么要学习Go语言

    为什么互联网世界需要Go语言 世界上已经有太多太多的编程语言了,为什么又出来一个Go语言? 硬件限制:摩尔定律已然失效 摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会 ...

  8. K折-交叉验证

    k-折交叉验证(k-fold crossValidation):在机器学习中,将数据集A分为训练集(training set)B和测试集(test set)C,在样本量不充足的情况下,为了充分利用数据 ...

  9. ArcSDE数据库、文件地理数据库和个人地理数据库的区别

    Geodatabase地理数据库分为: Personal Geodastabase个人地理数据库, File Geodatabase文件地理数据库, ArcSDE Geodatabase SDE地理数 ...

  10. Nginx 实现API 网关

    1,网关 网关(Gateway)就是一个网络连接到另一个网络的“关口”. 在Nginx 配置负载均衡之后,可以进入到网关,在网关决定进入到哪个真实的web 服务器. 2,将Ngnix 配置 API 网 ...