详解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类继承用法实例分析
Oct 10 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
Python之字典添加元素的几种方法
Sep 30 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
Python3+Flask安装使用教程详解
Feb 16 Python
Python基础之hashlib模块详解
May 06 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之uniqid()函数用法
2014/11/03 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
php压缩文件夹最新版
2018/07/18 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
vuex的使用步骤
2021/01/06 Vue.js
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python中元组的用法整理
2020/06/15 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
携程英文网站:Trip.com
2017/02/07 全球购物
几道PHP的面试题
2012/05/19 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
体育专业自荐书
2014/05/29 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
小学数学教学反思范文
2016/02/16 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA