详解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通过openpyxl生成Excel文件的方法
May 12 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
Python自定义类的数组排序实现代码
Aug 28 Python
深入理解Python中的内置常量
May 20 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Python 转换文本编码实现解析
Aug 27 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
Python可以实现栈的结构吗
May 27 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
python图片合成的示例
Nov 09 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
短波收音机简介
2021/03/01 无线电
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
python调用外部程序的实操步骤
2019/03/04 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
医生进修自我鉴定
2014/01/19 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL