详解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使用scrapy解析js示例
Jan 23 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
Python Queue模块详细介绍及实例
Dec 27 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
Python的iOS自动化打包实例代码
Nov 22 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
python读取图片任意范围区域
Jan 23 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
python中with语句结合上下文管理器操作详解
Dec 19 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
星际流派综述
2020/03/04 星际争霸
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python 流程控制实例代码
2009/09/25 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
自荐信范文
2013/12/10 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
宇宙与人观后感
2015/06/05 职场文书
工作经历证明范本
2015/06/15 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
八年级历史教学反思
2016/02/19 职场文书
JS实现九宫格拼图游戏
2022/06/28 Javascript