【selenium 】操作元素
操作元素
- 元素操作
- 鼠标操作
- 键盘操作
元素操作
| 元素操作 | 示例 |
|---|---|
清空输入框clear() | deiver.find_element_by_id(“username”).clear() |
输入文字send_keys() | deiver.find_element_by_id(“username”).send_keys(‘zs’) |
元素点击 click() | deiver.find_element_by_id(“login”).click() |
获取元素尺寸 size: | deiver.find_element_by_id(“login”).size |
获取元素文字 text | deiver.find_element_by_id(“username”).text |
获取元素属性get_attribute(属性名) | deiver.find_element_by_id(“username”).get_attribute(name) |
判断元素是否可见 is_displayed() 可见返回True,否则False | deiver.find_element_by_id(“search”).is_displayed() |
鼠标操作
鼠标相关操作被封装在webdriver的ActionChains 类中
- 导入:
from selenium.webdriver import ActionChains - 常用的方法如下:
| 鼠标操作 | 示例 |
|---|---|
| 执行所有 ActionChains中存储的行为: | perform() |
| 右击 | context click() |
| 双击 | double click() |
| 拖动 | drag and drop() |
| 鼠标悬停 | move to element() |
mouseDemo.py
import time
import os
from selenium.webdriver import ActionChains
from selenium import webdriverdriver = webdriver.Chrome()
file = open('mouse.html', 'r', encoding='utf-8')
file_path ='file:///'+ os.path.abspath('mouse.html')
driver.get(file_path)#获取【推荐】元素,并右击
recommend_button = driver.find_element(by="id", value="recommend")
ActionChains(driver).context_click(recommend_button).perform() #右击,会浏览器自带的浮窗#获取【热榜】元素,鼠标悬停
hot_button = driver.find_element(by="id", value="hot_list")
ActionChains(driver).move_to_element(hot_button).perform()
time.sleep(10) # 暂停10秒方便看效果
操作的页面,可在本章资源中下载,代码执行后效果如下:

键盘操作
- 导入:
from selenium import webdriver - 常用方法:
| 键盘操作类事件说明 | 示例 |
|---|---|
| 删除键(Backspace) | send_keys(Keys.BACK_SPACE) |
| 空格键(Space) | send_keys(Keys.SPACE) |
| Tab键 | send_keys(Keys.TAB) |
| 回退键(Esc) | send_keys(Keys.ESCAPE) |
| 回车键(Enter) | send_keys(Keys.ENTER) |
| 全选(Ctrl+A) | send_keys(Keys.CONTROL,'a') |
| 复制(Ctrl+C) | send_keys(Keys.CONTROL,'c') |
| 剪切(Ctrl+X) | send_keys(Keys.CONTROL,'x') |
| 粘贴(Ctrl+V) | send_keys(Keys.CONTROL,'v') |
| 键盘F1 | send_keys(Keys.F1) |
| 键盘F12 | send_keys(Keys.F12) |
使用示例:
from selenium import webdriver
#引入Keys 模块
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
#输入框输入内容
driver.find element by id ("kw"),send keys ("seleniumm" )
#删除多输入的一个m
driver.find element by id("kw").send keys (Keys .BACK SPACE)
#输入空格键+“教程”
driver.find element by id("kw").send keys (Keys.SPACE)
driver.find element by id("kw").send keys("教程")
#ctrl+a 全选输入框内容
driver.find element by id("kw").send keys (Keys .CONTROL, 'a' )
#ctrl+x剪切输入框内容
driver.find element by id("kw").send keys (Keys .CONTROL,
"x')
#ctrl+v粘贴内容到输入框
'v')
driver.find element by id("kw").send keys (Keys .CONTROL,
#通过回车键来代替单击操作
driver .find element by id("su").send keys (Keys .ENTER)
driver.quit()
相关文章:
【selenium 】操作元素
操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…...
【MySQL】事务实现原理
目录 事务 如何使用 ACID 原子性(Atomicity) 原子性实现原理 持久性(Durability) 持久性实现原理 隔离性 隔离级别 读未提交 读已提交 可重复读 串行化 隔离级别原理 锁 共享锁&独占锁 意向锁 索引记录锁 间隙锁 临键锁 插入意向锁 自增锁 MVCC 实现…...
面向物联网行业的异常监控追踪技术解决方案:技术革新与运维保障
在现代高度数字化和互联的环境中,物联网技术已经深入到我们生活的方方面面。特别是在家庭和工业环境中,物联网系列通讯作为连接各类设备的关键枢纽,其稳定性和可靠性显得尤为重要。本文将介绍一种创新的监控系统,旨在实时跟踪和分…...
守护厨房空气:全面排查与修复油烟净化器跳闸问题
我最近分析了餐饮市场的油烟净化器等产品报告,解决了餐饮业厨房油腻的难题,更加方便了在餐饮业和商业场所有需求的小伙伴们。 在繁忙的餐饮业厨房中,油烟净化器是确保空气清新和环境卫生的关键设备。然而,油烟净化器在长时间高强…...
【微服务网关——https与http2代理实现】
1.https与http2代理 1.1 重新认识https与http2 https是http安全版本http2是一种传输协议两者并没有本质联系 1.1.1 https与http的区别 HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)是用于在网络上交换数据的两种协议。H…...
mssql查询历史执行过的语句日志
SELECT deqs.creation_time,dest.text AS [SQL Text],deqs.execution_count,deqs.total_elapsed_time,deqs.total_worker_time FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest--where dest.text like %这个是我的条件&#…...
【LeetCode】每日一题:买卖股票的最佳时机 II
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 AC代码 水…...
【TS】TypeScript 联合类型详解:解锁更灵活的类型系统
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript 联合类型详解:解锁更灵活的类型系统一、联合类型的定义二…...
kali改回官方源后更新失败
官方源: deb http://http.kali.org/kali kali-rolling main non-free contrib deb-src http://http.kali.org/kali kali-rolling main non-free contrib在文件 /etc/cat/sources.list中将官方源修改为: deb http://http.kali.org/kali kali-rolling ma…...
Mysql 左关联(LEFT JOIN)
在左关联(LEFT JOIN)操作中,关于大表和小表的连接顺序,通常建议将小表放在前面,大表放在后面。这种安排方式有助于提高查询效率,原因如下: 扫描效率:在SQL查询中,尤其是…...
[笔记]小米CyberDog机器狗仿真调试记录
从官方github的所有源码库来看,所有的source命令只有两条,执行它以配置环境变量: source /opt/ros/galactic/setup.bash source /home/cyberdog_ws/install/setup.bash 如果运行脚本之后gazebo正常启动及机器狗模型在悬空状态,问…...
第十四届蓝桥杯省赛C++B组G题【子串简写】题解(AC)
题目大意 给定字符串 s s s,字符 a , b a, b a,b,问字符串 s s s 中有多少个 a a a 开头 b b b 结尾的子串。 解题思路 20pts 使用二重循环枚举左端点和右端点,判断是否为 a a a 开头 b b b 结尾的字符串,是则答案加一…...
实现Java Web应用的高性能负载均衡方案
实现Java Web应用的高性能负载均衡方案 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在高并发的网络环境中,负载均衡是确保Web应用程序高性能和可靠性的关键策略之一。本文将探讨如何…...
医学预测模型web APP的制作建议
医学预测模型web APP的制作建议 医学预测模型类web APP定义为承载预测模型而便利预测模型临床应用的可视化客户端。 医学预测模型类web APP的功能是衔接预测模型和临床实践,让用户正确地,方便地使用预测模型并恰当地理解预测模型的结果,在此…...
gitlab每日备份以及restore
gitlab服务有非常简洁的每日备份命令, 从production的gitlab的每日备份中restore到backup环境也非常方便。 一、Production gitlab每日备份 1. Production gitlab环境上编写脚本 cat /root/gitlab_bak.shgitlab-rake gitlab:backup:create > /var/opt/gitl…...
2024-07-05 base SAS programming学习笔记9(variables)
1.在数据集增加累加变量值(SUM) 求和语句(SUM STATEMENT):variableexpression variable是累积求和的变量名,为数值型,默认初始值为0;该variable值则会保留到一个观测 当expression有缺失值,在求…...
kafka--发布-订阅消息系统
1. Kafka概述 1. kafka是什么 kafka是分布式的、高并发的、基于发布/订阅模式的消息队列软件系统。 kafka中的重要组件 Producer:消息生产者,发布消息到Kafka集群的终端或服务Consume:消费者,从Kafka集群中消费消息的终端或服…...
2024最新软件测试面试题。内附答案+文档
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、你以前工作时的测试流程是什么? 参考答案:(灵活回答&…...
新加坡很火的slots游戏代投Facebook广告新流量趋势
新加坡很火的slots游戏代投Facebook广告新流量趋势 在新加坡这片充满活力的土地上,Slots游戏以其独特的魅力和吸引力,迅速成为了许多玩家的心头好。而Facebook,作为全球最大的社交媒体平台之一,为Slots游戏的推广提供了得天独厚的…...
C++ 实现字符串逆序
C 实现字符串逆序 思路: 输入一个字符串。使用双指针法,交换字符串的首尾字符,逐步向中间移动。输出逆序后的字符串。 #include <iostream> #include <string>using namespace std;void reverseString(string &str) {int …...
抖音直播回放下载工具:高效保存与智能管理解决方案
抖音直播回放下载工具:高效保存与智能管理解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代,精彩的直播内容稍纵即逝,如何永久保存这些宝贵的…...
如何3分钟免费为Figma安装中文界面插件:设计师效率提升完整指南
如何3分钟免费为Figma安装中文界面插件:设计师效率提升完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 作为一名中文设计师,你是否曾在使用Figma时因为英…...
从零开始:用Qwerty Learner提升你的打字速度和英语学习效率
从零开始:用Qwerty Learner提升你的打字速度和英语学习效率 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner 还在为打字速度慢而烦恼吗?想同时提升英语词汇量和编程术语记忆吗?Qw…...
GTE模型在法律文书智能检索中的突破性应用
GTE模型在法律文书智能检索中的突破性应用 1. 引言 在法律行业,文书检索一直是个让人头疼的问题。传统的检索方式主要依赖关键词匹配,但法律文书往往涉及复杂的语义关系和专业术语,简单的关键词搜索经常会出现"查不全"或"查…...
51单片机红外避障循迹小车实战:从接线到代码调试全流程(附避坑指南)
51单片机红外避障循迹小车实战:从硬件搭建到算法优化全解析 在电子制作领域,红外避障循迹小车堪称"入门必修课"。这个看似简单的项目,实则融合了传感器技术、电机控制、逻辑编程等多个核心知识点。不同于市面上大多数教程只停留在基…...
使用VMware虚拟机搭建Nanobot开发环境
使用VMware虚拟机搭建Nanobot开发环境 1. 引言 你是不是遇到过这样的情况:想尝试最新的AI开发工具,但又担心搞乱自己的主力开发环境?或者团队需要统一开发环境,但每个人的电脑配置都不一样? 使用虚拟机搭建开发环境…...
Pixel Mind Decoder 前端交互设计:基于 JavaScript 的情绪看板开发
Pixel Mind Decoder 前端交互设计:基于 JavaScript 的情绪看板开发 1. 情绪看板的应用场景与价值 在现代数字化产品中,理解用户情绪变得越来越重要。无论是社交媒体监测、客服系统优化,还是心理健康应用开发,能够实时分析并可视…...
LFM2.5-1.2B-Thinking多模态扩展展示:结合视觉模型的图文理解能力
LFM2.5-1.2B-Thinking多模态扩展展示:结合视觉模型的图文理解能力 1. 多模态能力惊艳亮相 LFM2.5-1.2B-Thinking最近在多模态领域展现出了令人惊喜的表现。这个原本专注于文本推理的模型,通过与视觉模型的结合,实现了从纯文本到图文理解的跨…...
qmc-decoder:快速解锁QQ音乐加密文件的终极指南
qmc-decoder:快速解锁QQ音乐加密文件的终极指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经从QQ音乐下载了心爱的歌曲,却发现只能在特…...
HunyuanVideo-Foley 效果对比:不同算法模型生成音效的质量评估
HunyuanVideo-Foley 效果对比:不同算法模型生成音效的质量评估 1. 音效生成技术概览 音效生成技术正在经历一场革命性的变革。从早期的采样拼接到如今的AI生成,算法模型已经能够根据简单的文字描述创造出丰富多样的声音效果。这项技术在影视制作、游戏…...
