详解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的re模块应用实例
Sep 26 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
Python实现注册登录系统
Aug 08 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
python基于SMTP协议发送邮件
May 31 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
Python实现最常见加密方式详解
Jul 13 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
Python 转移文件至云对象存储的方法
Feb 07 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
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
js中作用域的实例解析
2017/03/16 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
angular异步验证防抖踩坑实录
2019/12/01 Javascript
python开发之list操作实例分析
2016/02/22 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
8种常用的Python工具
2020/08/05 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
金融专业个人求职信
2013/09/22 职场文书
应届毕业生求职信
2014/05/26 职场文书
大学生活动总结模板
2014/07/02 职场文书
学校2014年度工作总结
2014/12/06 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
个人售房合同协议书
2016/03/21 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
用python修改excel表某一列内容的操作方法
2021/06/11 Python
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电