python之selenium库安装及用法(定位法、获取文本、文本框输入、鼠标点击、滑动滚动条)
一、selenium库安装
pip install selenium
二、浏览器驱动安装
谷歌浏览器驱动下载地址:https://chromedriver.storage.googleapis.com/index.html
根据你电脑的谷歌浏览器版本,下载相应的就行。我下载的是110.0.5481.XX中的chromedriver_win32.zip
下载完成,解压将里面的chromedriver.exe放到你python安装路径的scripts文件夹中。

三、简单使用
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
能打开百度网页说明安装成功
四、各种使用方法
(一)定位法
input_box = browser.find_element_by_id("kw")
| 定位一个元素 | 定位多个元素 | 含义 |
|---|---|---|
| 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_element_by_css_selector | find_elements_by_css_selector | 通过css选择器进行定位 |
(二)获取元素
1、获取文本
from selenium.webdriver.common.by import By
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
search_button = browser.find_element(by=By.XPATH,value="/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/span[2]")
value1 = search_button.get_attribute("textContent") # 获取文本方式1
value2 = search_button.get_attribute("innerText") # 获取文本方式2
print(value1,value2) # =按图片搜索
2、获取value属性值
browser.get('https://www.baidu.com')
search_button = browser.find_element_by_id("su")
value = search_button.get_attribute("value") # 获取value属性值
print(value) # =百度一下
(三)文本框输入
browser.get('https://www.baidu.com')
search_button = browser.find_element(by=By.ID,value="kw")
search_button.send_keys("你好,世界!") # 文本框输入
(四)按钮点击
1、鼠标左击
browser.get('https://www.baidu.com')
search_button = browser.find_element(by=By.ID,value="su")
search_button.click() # 点击
2、鼠标右击
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
browser.get('https://www.baidu.com')
search_button = browser.find_element(by=By.ID,value="su")
ActionChains(browser).context_click(search_button).perform() # 鼠标右击
3、鼠标双击
ActionChains(browser).double_click(search_button).perform() # 鼠标双击
(五)浏览器操作
1、页面刷新
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.refresh() # 当前页面刷新
2、修改窗口大小、全屏显示
browser = webdriver.Chrome()
browser.set_window_size(800, 600) # 修改窗口大小
browser.maximize_window() # 全屏显示
3、滑动进度条
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/s?wd=你好世界')
browser.execute_script("window.scrollTo(0,300)") # 滑动进度条
4、关闭浏览器
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/s?wd=你好世界')
browser.close() # 关闭浏览器
相关文章:
python之selenium库安装及用法(定位法、获取文本、文本框输入、鼠标点击、滑动滚动条)
一、selenium库安装 pip install selenium二、浏览器驱动安装 谷歌浏览器驱动下载地址:https://chromedriver.storage.googleapis.com/index.html 根据你电脑的谷歌浏览器版本,下载相应的就行。我下载的是110.0.5481.XX中的chromedriver_win32.zip 下载…...
FPGA纯verilog实现图像视频旋转 串口指令控制旋转角度 提供工程源码和技术支持
目录1、前言2、理论基础3、设计思路和框架图像输入和采集图像旋转处理图像缓存图像输出4、vivado工程详解5、上板调试验证6、福利:工程代码的获取1、前言 图像旋转是一种常用的图像处理技术,其基本原理就是指图像以某一点为中心旋转一定的角度ÿ…...
EventGraph:Event Extraction as Semantic Graph Parsing 论文解读
EventGraph: Event Extraction as Semantic Graph Parsing 论文:2022.case-1.2.pdf (aclanthology.org) 代码:huiling-y/EventGraph (github.com) 期刊/会议:CASE 2022 摘要 事件抽取涉及到事件触发词和相应事件论元的检测和抽取。现有系…...
【蓝桥杯集训·每日一题】AcWing 3696. 构造有向无环图
文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴拓扑排序一、题目 1、原题链接 3696. 构造有向无环图 2、题目描述 给定一个由 n 个点和 m 条边构成的图。 不保证给定的图是连通的。 图中的一部分边的方向已经确定&#…...
国内vs国外:外贸建站该如何选择?
外贸建站找国内还是国外? 答案是:国内。 随着互联网的发展,越来越多的企业开始意识到在网络上进行商业活动的重要性。 其中,建立一个专业的外贸网站是企业在国际市场上拓展业务的关键。 然而,对于选择国内还是国外…...
HLS协议有哪些特别优势
阿酷TONY / 2023-3-3 / 长沙 可以实现码率的动态自适应,清晰度动态成为可能;HLS是基于HTTP 协议的,更易于做各平台的适配与兼容;多终端跨平台的支持性: PC端, Android端, IOS 平台,微信之类的都支持&am…...
JavaScript里的回调函数属于闭包吗?
回调函数本身不一定属于闭包,但是在某些情况下,它们可能会涉及闭包。 回调函数通常是指在异步操作完成时执行的函数。它们在 JavaScript 中被广泛使用,例如在处理 AJAX 请求、定时器、事件处理程序等方面。 在使用回调函数时,如…...
编程基本概念
程序的构成 python程序由模块组成,一个模块对应一个python源文件,后缀为.py模块由语句组成,运行python程序时,按照模块中的语句顺序依次执行语句是python程序的构造单元,用于创建对象,变量赋值,…...
Azure OpenAI 官方指南02|ChatGPT 的架构设计与应用实例
ChatGPT 作为即将在微软全球 Azure 公有云平台正式发布的服务,已经迅速成为了众多用户关心的服务之一。而由 OpenAI 发布的 ChatGPT 产品,仅仅上线两个月,就成为互联网历史上最快突破一亿月活的应用。本期从技术角度深度解析 ChatGPT 的架构设…...
RK3568核心板以太网大数据测试报告-万象奥科
1. 测试对象HD-RK3568-IOT 底板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器…...
来 CSDN 三年,我写了一本Python书
大家好,我是朱小五。转眼间已经来 CSDN 3年了,其中给大家一共分享了252篇Python文章。 但这三年,最大的收获还是写了一本Python书! 在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做…...
TIA博途中通过SCL语言实现快速排序的具体方法示例
TIA博途中通过SCL语言实现快速排序的具体方法示例 首先,了解一下快速排序的原理: 排序算法的思想非常简单,在待排序的数列中,我们首先要找一个数字作为基准数。为了方便,我们一般选择第 1 个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要将这个待排序的数列…...
第 46 届世界技能大赛浙江省选拔赛“网络安全“项目B模块任务书
第46届世界技能大赛浙江省选拔赛"网络安全"项目B模块(网络安全事件响应、数字取证调查)第46届世界技能大赛浙江省选拔赛"网络安全"项目B模块2.1 第一部分 事件响应2.2 第二部分 数字取证调查2.3 第三部分 应用程序安全第46届世界技能…...
【C】字符串操作函数
初始化字符串 #include <string.h>void *memset(void *s, int c, size_t n); 返回值:s指向哪,返回的指针就指向哪memset函数把s所指的内存地址开始的n个字节都填充为c的值。通常c的值为0,把一块内存区清零。例如定义char buf[10];&…...
【python】 pytest自动化测试框架--selenium,requests,appium自动化工具
一、pytest简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高 二、 pytest 单元测试框架 1、pytest 特点 pytest是python当中的一个单元框架,比unittest更灵…...
Spring boot 实战指南(三):配置事务,整合Elasticsearch、swagger、redis、rabbitMQ
文章目录一、配置事务依赖使用注解二、Elasticsearch创建项目配置maven完善依赖es连接配置实体映射repositoryservicecontroller三、swagger依赖启动类路径匹配配置配置类controller注解四、redis(代码实现)依赖yml配置配置类封装redisTamplate五、rabbi…...
九、Bean的循环依赖问题
1 什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你,你也依赖我。 比如:丈夫类Husband,妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 2 singleton下的set注入产生的循环依赖 丈夫类 pac…...
macOS关闭SIP后,仍无法修改/usr文件夹下文件
发现问题 MacOS 升级到Big Sur后,删除多余的python3文件,发现写不到磁盘,会报OSError: [Errno 30] Read-only file system的错误。经过了解,在Mac OS10.11 之后,苹果公司为了提高系统环境安全,引入了一个内…...
【编程基础之Python】8、Python复合数据类型
【编程基础之Python】8、Python复合数据类型Python复合数据类型列表(List)创建列表访问元素内置方法列表操作元组(Tuple)创建元组访问元素集合(Set)创建集合基本操作其他操作字典(Dictionary&am…...
自动驾驶决策规划-控制方向学习资料总结(附相关资料的链接)
项目仓库 欢迎访问我的Github主页 项目名称说明chhCpp学习C仓库chhRobotics学习自动驾驶、控制理论相关仓库(python实现)chhRobotics_CPP学习自动驾驶、控制理论相关仓库(c实现)chhML 、chh-MachineLearning学习机器学习仓库chhRL学习强化学习仓库chhTricks存放一些有意思的t…...
从手机解锁合法化看DMCA、消费者权利与设备所有权的博弈
1. 从“越狱”到合法化:一场关于设备所有权的消费者权利运动2013年初,如果你在美国买了一部合约机,然后想把它带到另一家运营商使用,你面临的不仅仅是不兼容的技术问题,还可能是一项重罪——最高五年的监禁和五十万美元…...
Dev Containers实战:容器化开发环境配置与团队协作指南
1. 项目概述:一个容器化的开发环境定义仓库如果你和我一样,经常需要在不同的机器上切换工作,或者团队里有新成员加入,那么“环境配置”这件事,绝对能排进程序员最头疼问题的前三名。我经历过无数次这样的场景ÿ…...
基于LLM与多智能体架构的科研文献检索系统设计与实现
1. 项目概述:当AI遇上科研,一场信息检索的革命如果你是一名科研工作者,或者正在为毕业论文、项目报告而焦头烂额,那你一定对“找文献”这件事深有体会。面对海量的学术数据库,输入关键词,得到成千上万篇论文…...
本地视频怎么去水印?2026实测去水印方法汇总,本地视频去水印软件推荐
本地视频怎么去水印?2026实测去水印方法汇总,本地视频去水印软件推荐 视频里的水印是很多人在整理或剪辑素材时遇到的高频问题。有时是平台在视频上自动打上的 Logo,有时是录屏工具留下的品牌标识,还有时是拍摄 App 在画面角落打的…...
编程统计产品售后处理时长,客户满意度数据,优化售后流程,降低客户投诉率,提升企业职场服务口碑。
一、实际应用场景描述在制造、家电、消费电子、SaaS 等行业中,售后服务是客户体验的关键环节,典型流程包括:- 客户提交售后申请(报修、退换货、咨询)- 客服受理 → 技术/维修派单 → 上门/处理 → 完成 → 客户评价- 系…...
电信运营商M2M战略转型:从连接人到连接物的物联网新增长引擎
1. 从“人联网”到“物联金矿”:电信运营商的M2M战略转型 在过去的二十年里,全球的移动通信网络经历了一场狂飙突进,其核心使命始终围绕着“连接人”。从2G时代的短信和语音,到3G/4G时代的移动互联网,再到如今5G所描绘…...
3PEAK思瑞浦 TPA2642-SO1R SOP8 运算放大器
特性 供电电压:3V至36V 偏移电压:2mV(最大值) 差分输入电压范围至电源轨,可作为比较器工作 带宽:1.5MHz,斜率:0.5V/us 输入轨至-Vs,无内部ESD二极管至Vs .低1/f噪声:在10Hz时为50nV/Hz 高PSRR:100kHz时为60dB 开关电源开启和关闭期间无显著输…...
MongoDB Atlas Vector Search与LangChain集成:构建企业级RAG系统实践
1. 项目概述:当MongoDB遇见生成式AI最近在开发者社区里,一个名为mongodb-developer/GenAI-Showcase的项目引起了我的注意。作为一名长期与数据打交道的开发者,我深知在生成式AI(GenAI)浪潮席卷而来的当下,如…...
RevokeMsgPatcher:微信/QQ/TIM防撤回补丁工具完全指南
RevokeMsgPatcher:微信/QQ/TIM防撤回补丁工具完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.co…...
QtScrcpy终极指南:高效实现Android投屏控制
QtScrcpy终极指南:高效实现Android投屏控制 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy QtScr…...
