前言

江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑。

除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖!

一、十八种定位方法

前八种是大家都熟悉的,经常会用到的

1.id定位:find_element_by_id(self, id_)
2.name定位:find_element_by_name(self, name)
3.class定位:find_element_by_class_name(self, name)
4.tag定位:find_element_by_tag_name(self, name)
5.link定位:find_element_by_link_text(self, link_text)
6.partial_link定位find_element_by_partial_link_text(self, link_text)
7.xpath定位:find_element_by_xpath(self, xpath)
8.css定位:find_element_by_css_selector(self, css_selector)

这八种是复数形式
9.id复数定位find_elements_by_id(self, id_)
10.name复数定位find_elements_by_name(self, name)
11.class复数定位find_elements_by_class_name(self, name)
12.tag复数定位find_elements_by_tag_name(self, name)
13.link复数定位find_elements_by_link_text(self, text)
14.partial_link复数定位find_elements_by_partial_link_text(self, link_text)
15.xpath复数定位find_elements_by_xpath(self, xpath)
16.css复数定位find_elements_by_css_selector(self, css_selector

这两种就是快失传了的
find_element(self, by='id', value=None)
find_elements(self, by='id', value=None)

二、element和elements傻傻分不清

1.element方法定位到是是单数,是直接定位到元素

2.elements方法是复数,这个学过英文的都知道,定位到的是一组元素,返回的是list队列

3.可以用type()函数查看数据类型

4.打印这个返回的内容看看有什么不一样

三、elements定位方法

1.前面一篇已经讲过find_element()的用法,看这里:

2.这里重点介绍下用elements方法如何定位元素,当一个页面上有多个属性相同的元素时,然后父元素的属性也比较模糊,不太好定位。

这个时候不用怕,换个思维,别老想着一次定位到,可以先把相同属性的元素找出来,取对应的第几个就可以了。

3.如下图,百度页面上有六个class一样的元素,我要定位“地图”这个元素

4.取对应下标即可定位了

四、参考代码

# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

# 这里是定位的单个id
element = driver.find_element_by_id("kw")
print type(element)
print element

# 这里定位是多个class
elements = driver.find_elements_by_class_name("mnav")
print type(elements)
print elements

# 这里用的css语法
s = driver.find_elements("css selector", ".mnav")
# '地图'在第四个位置
print s[3].text
s[3].click()
# 交流QQ群:232607095

# 这个写法也是可以的
# driver.find_elements("css selector", ".mnav")[3].click()

学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

另外成立了python接口自动化QQ群:226296743

selenium+python高级教程》已出书:selenium webdriver基于Python源码案例

(购买此书送对应PDF版本)

转载于:https://www.cnblogs.com/yoyoketang/p/6557421.html

Selenium2+python自动化45-18种定位方法(find_elements)相关推荐

  1. 2.27 18种定位方法总结

    2.27 18种定位方法总结 前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑. 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! ...

  2. Selenium2+python自动化5-操作浏览器基本方法

    前言 前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是 ...

  3. Selenium2+python自动化64-100(大结局)[已出书]

    前言 小编曾经说过要写100篇关于selenium的博客文章,前面的64篇已经免费放到博客园供小伙伴们学习,后面的内容就不放出来了,高阶内容直接更新到百度阅读了. 一.百度阅读地址: 1.本书是在线阅 ...

  4. python 常用的几种定位方式

    Python常用的几种定位方法 一,python 常用的8种定位方法1,使用 ID定位 driver.find_element_by _id('ID 值')driver.find_element(by ...

  5. Selenium2+python自动化7-xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  6. Selenium2+python自动化28-table定位

    前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...

  7. Selenium2+python自动化33-文件上传(send_keys)

    前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种 ...

  8. Selenium2+python自动化24-js处理富文本(带iframe)

    前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...

  9. Selenium2+python自动化43-判断title(title_is)

    前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言. 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+p ...

  10. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

最新文章

  1. 2012年A股可能再跌20%~30%
  2. VirtFS 虚拟化技术简介
  3. pybind 回调 多线程 异常
  4. 学python好不好-26岁了,自学Python怎么样?
  5. leetcode算法题--Minimum Depth of Binary Tree
  6. synchronized的四种用法
  7. C# 基础知识 (一).概念与思想篇
  8. linux脚本编程有参函数,shell脚本编程进阶:函数
  9. Dart 10-Day
  10. 国家图书馆关于php的书,国家图书馆啊,能借的书太少
  11. 浙大计算机学院2021复试名单,浙江大学2021年硕士研究生各院复试细则及复试名单汇总...
  12. deeplung代码实现主题讲解
  13. 关于Android Studio Arctic Fox版本找不到Database Inspection这件事
  14. 算法设计与分析基础——假币问题(三分法)
  15. 《简约至上:交互设计四策略》导读
  16. DDD到底是不是毒瘤?
  17. 苹果手机自带软件删除了怎么恢复_苹果手机数据被删除如何来恢复数据???...
  18. java版捕鱼达人----完整版补充
  19. egret(白鹭引擎) 学习历程(二)
  20. I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系

热门文章

  1. UVa 11059 - Maximum Product
  2. 刻骨铭心的startActivityForResult三级跳获得第三个Activity中返回的数据
  3. 配置IPsec Tunnel With TACACS+ User Authentication
  4. beats 耳机 android,Beats耳机app
  5. hex文件和bin文件区别
  6. Xilinx 7系列FPGA介绍
  7. ipython notebook使用
  8. 原来matplotlib 散点图可以这样
  9. 7. Python运算符之逻辑、成员、身份运算符及优先级
  10. 使用pgpool-ii建立PostgreSQL链接池