当我们想让 Selenium 自动地操作浏览器时,就必须告诉 Selenium 如何去定位某个元素或一组元素,每个元素都有着不同的标签名和属性值,Selenium 提供了以下8种定位元素的方式,每种方式对应了2个方法:
find_element_by_( ),是用来定位单个元素的,find_elements_by_( ),是用来定位多个元素的。

  • 通过 id 定位
  • 通过 name 定位
  • 通过 class 定位
  • 通过 tag 定位
  • 通过 link 定位
  • 通过 partial link 定位
  • 通过 xpath 定位
  • 通过 css 选择器定位

下面以百度首页为例进行举例说明:

1.通过 id 定位

find_element_by_id(id)
find_elements_by_id(id)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位id为“kw”的元素
input_text = driver.find_element_by_id("kw")
input_text.send_keys("selenium")driver.quit()

2.通过通过 name 定位

find_element_by_name(name)
find_elements_by_name(name)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位name为“wd”的元素
input_text = driver.find_element_by_name("wd")
input_text.send_keys("selenium")driver.quit()

3.通过 class 定位

find_element_by_class_name(name)
find_elements_by_class_name(name)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位class名称为“s_ipt”的元素
input_text = driver.find_element_by_class_name("s_ipt")
input_text.send_keys("selenium")driver.quit()

4.通过 tag 定位

find_element_by_tag_name(name)
find_elements_by_tag_name(name)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位标签为<input>的元素
input_text = driver.find_elements_by_tag_name("input")
print(len(input_text))driver.quit()

5.通过 link 定位

find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位链接文本完全匹配“我新闻”的元素
news = driver.find_element_by_link_text("新闻")
news.click()driver.quit()

6.通过 partial link 定位

find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位链接文本部分匹配“新”的元素
news = driver.find_element_by_partial_link_text("新")
news.click()driver.quit()

7.通过 xpath 定位

find_element_by_xpath(xpath)
find_elements_by_xpath(xpath)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# xpath定位,相对路径与属性结合定位搜索框
news = driver.find_element_by_xpath("//input[@id='kw']")
news.click()driver.quit()

8.通过 css 选择器定位

find_element_by_css_selector(css_selector)
find_elements_by_css_selector(css_selector)

# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# css选择器,id定位密码输入框
news = driver.find_element_by_css_selector('#kw')
news.click()driver.quit()

这里只是简单介绍了8种元素定位方式的使用,比较简单易用的是通过id、name、class定位,我个人比较喜欢的是用xpath定位,当然,最灵活也是最强大的定位方式就是css,它也是比较难掌握的一种方式。关于xpath和css定位方式的详细介绍,可以参考
selenium 元素定位。

Python2+Selenium入门03-元素定位相关推荐

  1. 【转载】selenium webdriver进行元素定位

    原文:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或fi ...

  2. Selenium自动化测试-3.元素定位(3)

    ------·今天距2020年81天·------ 这是ITester软件测试小栈第55次推文 大家好 我是vivi小胖虎 前面已经介绍过7种元素定位方法 相信这些积攒堆积起来的技巧 都会在实际工作时 ...

  3. Selenium自动化测试-3.元素定位(2)

    ------·今天距2020年82天·------ 这是ITester软件测试小栈第54次推文 大家好 我是vivi小胖虎 今天我们学习xpath定位元素 如果你告诉我 不是你不想用selenium做 ...

  4. 使用selenium webdriver进行元素定位

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

  5. Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...

  6. python网页元素定位_用Selenium进行网页元素定位以及常用的定位元素的方法

    用Selenium进行网页元素定位 一.前提条件: 下载.安装Selenium 二.编写定位网页元素的脚本(这里以定位百度网页的元素举例) 1.新建文本文档(可以用任意的文本编辑器,我这里用的是Pyc ...

  7. python selenium 元素定位_python3+selenium入门04-元素定位

    我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者 ...

  8. 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#

    关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...

  9. 【RPA自动化】selenium教程_元素定位及表格读取

    一.selenuim安装 下载selenium浏览器驱动,将msedgedriver.exe文件放入Python的安装路径下. edge下载路径:Microsoft Edge Driver - Mic ...

最新文章

  1. 更高效的PacBio长read纠错算法的研究
  2. vue-router2路由参数注意问题
  3. cesium鼠标控制键盘_用 Python 控制 鼠标和键盘,花式操作
  4. 自信息跟信息熵的区别
  5. java 以一个最高有效位为1的二进制数字开始_第02章 Java编程基础
  6. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...
  7. 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const
  8. 了解一下Elasticsearch的基本概念
  9. backtrader2
  10. 树莓派和微信和服务器,用树莓派搭建微信公共平台
  11. ReactJs 高级篇一 Context 使用
  12. 小米路由器mini 刷潘多拉固件教程
  13. Vue中解决数据量过大导致页面崩溃;解决方案
  14. 在电脑上微信无法语音聊天,微信听不到语音声音
  15. instagram获取图片地址和视频地址
  16. Win10安装Ubuntu18.04
  17. python如何读取log文件_怎么解决Python读取log文件时报错
  18. 计算机基础为什么要学word,计算机基础中word教学探讨
  19. Halcon算子说明
  20. informix GBase -179 ISAM error: No free disk space for sort.

热门文章

  1. 深度报告:芯片设计EDA 2.0时代,三大路径搞定六大挑战
  2. 它将改变一切:AI解决了生物学50年来的重大难题
  3. 为什么AI感知与人类感知无法直接比较?
  4. Nature重磅发现:神经活动影响人类寿命!
  5. 最新《科学》重磅!科学家喊你赶快关心自己的孩子:缺乏母爱会导致大脑基因改变...
  6. 生命简史——跨越地球40亿年
  7. 揭秘|超乎想象!未来50年将出现的九大黑科技……
  8. 商汤科技宣布C轮战略融资6亿美元 阿里领投苏宁跟投
  9. 程序员圈的鄙视链 | 每日趣闻
  10. 从入职到离职创业,我在谷歌、亚马逊的八年