详解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生成器的使用方法
Nov 21 Python
Python批量修改文件后缀的方法
Jan 26 Python
Anaconda入门使用总结
Apr 05 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 Python
django的settings中设置中文支持的实现
Apr 28 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
python3实现mysql导出excel的方法
Jul 31 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
python如何将两个txt文件内容合并
Oct 18 Python
python实现实时视频流播放代码实例
Jan 11 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
Python常用外部指令执行代码实例
Nov 05 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 星际争霸
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python中for循环控制语句用法实例
2015/06/02 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python 互换字典的键值对实例
2019/02/12 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
师范毕业生求职自荐信
2013/09/25 职场文书
小学生元旦广播稿
2014/02/21 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸