详解Selenium 元素定位和WebDriver常用方法


Posted in Python onDecember 04, 2020

一、定位元素的8种方式

1、方法介绍

定位一个元素 定位多个元素 含义
find_element_by_id() find_elements_by_id() 通过元素id定位
find_element_by_name() find_elements_by_name() 通过元素name定位
find_element_by_xpath() find_elements_by_xpath() 通过xpath表达式定位
find_element_by_link_text() find_elements_by_link_text() 通过完整超链接定位
find_element_by_partial_link_text() find_elements_by_partial_link_text() 通过部分链接定位
find_element_by_tag_name() find_elements_by_tag_name() 通过标签定位
find_element_by_class_name() find_elements_by_class_name() 通过类名进行定位
find_elements_by_css_selector() find_elements_by_css_selector()

2、实例演示

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

#通过元素id定位()
driver.find_element_by_id('kw')

#通过元素name定位
driver.find_element_by_name('wd')

#通过类名进行定位
driver.find_element_by_class_name('s_ipt')

#通过标签定位
driver.find_element_by_tag_name('input')

#通过xpath表达式定位
driver.find_element_by_xpath('//*[@id="kw"]')

#通过css选择器进行定位
driver.find_element_by_css_selector('#kw')

#通过完整超链接定位
driver.find_element_by_link_text('新闻')

#通过部分链接定位
driver.find_element_by_partial_link_text('hao')

driver.quit()#关闭所有标签页

关于xpaht和css的定位比较复杂,请参考:

from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("程序猿杂记")
driver.find_element_by_id("su").click()
time.sleep(5)

driver.quit() # 关闭所有标签页

3.提交

submit():用于提交表单,相当于回车,应用范围远不及 click()广泛

from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

driver_id = driver.find_element_by_id("kw")
driver_id.send_keys("程序猿杂记")
driver_id.submit()
time.sleep(5)

driver.quit() # 关闭所有标签页

4.获取一些内容

  • title:获得当前页面的标题
  • current_url:用户获得当前页面的URL
  • size: 获取元素的尺寸
  • text: 获取元素的文本
  • get_attribute(): 获得属性值
  • is_displayed(): 该元素是否用户可见
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

# 获取当前页面的title
title = driver.title
print(title)

#获取当前页的url
url = driver.current_url
print(url)

# 获得输入框的尺寸
input_size = driver.find_element_by_id('kw').size
print(input_size)

# 返回百度页面底部备案信息
text = driver.find_element_by_id("cp").text
print(text)

# 返回元素的属性值, 可以是 id、 name、 type 或其他任意属性
attribute = driver.find_element_by_id("kw").get_attribute('type')
print(attribute)

# 返回元素的结果是否可见, 返回结果为 True 或 False
result = driver.find_element_by_id("kw").is_displayed()
print(result)

driver.quit() # 关闭所有标签页

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于详解Selenium 元素定位和WebDriver常用方法的文章就介绍到这了,更多相关Selenium 元素定位内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python命令行参数sys.argv使用示例
Jan 28 Python
python求素数示例分享
Feb 16 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
python代码编写计算器小程序
Mar 30 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
基于python实现雪花算法过程详解
Nov 16 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
pytorch数据预处理错误的解决
Feb 20 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python类super()及私有属性原理解析
Jun 15 Python
python中re模块知识点总结
Jan 17 Python
Selenium 安装和简单使用的实现
Dec 04 #Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 #Python
Python实现中英文全文搜索的示例
Dec 04 #Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 #Python
使用Python通过oBIX协议访问Niagara数据的示例
Dec 04 #Python
python飞机大战游戏实例讲解
Dec 04 #Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 #Python
You might like
第十一节 重载 [11]
2006/10/09 PHP
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
Python 元类使用说明
2009/12/18 Python
Python3处理文件中每个词的方法
2015/05/22 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
中医药大学毕业生自荐信
2013/11/08 职场文书
老师对学生的寄语
2014/04/09 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
安全承诺书格式范本
2015/04/28 职场文书
拖欠货款起诉状
2015/05/20 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
订货会主持词
2015/07/01 职场文书
2016党校培训心得体会
2016/01/07 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL