详解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基础教程之数字处理(math)模块详解
Mar 25 Python
Python深入学习之对象的属性
Aug 31 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
Python中的取模运算方法
Nov 10 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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
文章推荐系统(三)
2006/10/09 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
php表单处理操作
2017/11/16 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
angular实现spa单页面应用实例
2017/07/10 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
Python正规则表达式学习指南
2016/08/02 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
上学迟到的检讨书
2014/01/11 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
安全生产会议制度
2015/08/06 职场文书
2016寒假假期总结
2015/10/10 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
php字符串倒叙
2021/04/01 PHP
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript