当前位置: 首页 > news >正文

web自动化(三)鼠标操作键盘

selenuim 键盘操作

import timefrom selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as  EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium import  webdriverweb_driver=webdriver.Firefox()
web_driver.get("https://baidu.com")el=(By.ID,"kw")
WebDriverWait(web_driver,10,2).until(EC.presence_of_element_located(el))
el_se=web_driver.find_element(*el)
el_se.send_keys("selenium")
time.sleep(5)el_se.send_keys(Keys.CONTROL,"a")
time.sleep(5)
el_se.send_keys(Keys.CONTROL,"c")
time.sleep(5)
el_se.clear()
time.sleep(5)
el_se.send_keys(Keys.CONTROL,"v")
time.sleep(5)web_driver.quit()

drissionpage 键盘操作

问题 page.actions.key_down(DrissionKeys.CTRL_A) 报错 AttributeError: ‘tuple’ object has no attribute ‘upper’

在这里插入图片描述
未找到解决方案

from DrissionPage import  WebPage
from DrissionPage.common import By as DrissionBy
from DrissionPage.common import Keys as DrissionKeyspage=WebPage("d")page.get("https://baidu.com")
el=(DrissionBy.ID,"kw")
page.wait.eles_loaded(el,timeout=5)
el_se=page.ele(el)
el_se.input("drissionpage")page.actions.key_down(DrissionKeys.CTRL_A)
time.sleep(5)
page.actions.key_down(DrissionKeys.CTRL_C)
time.sleep(5)
el_se.clear()
time.sleep(5)
page.actions.key_down(DrissionKeys.CTRL_V)time.sleep(5)page.quit()

selenuim 鼠标

import timefrom selenium import  webdriver
from  selenium.webdriver import ActionChains
from selenium.webdriver.common.by import  By
driver=webdriver.Firefox()
driver.get("https://baidu.com")time.sleep(5)
el=(By.ID,"s-usersetting-top")el_se1=driver.find_element(*el)
#不管执行什么操作最后都需要perform
ActionChains(driver).move_to_element(el_se1).perform()
time.sleep(5)el=(By.LINK_TEXT,"高级搜索")
el_se2=driver.find_element(*el)el_se2.click()time.sleep(5)driver.quit()

drissionpage 鼠标

from DrissionPage import  WebPage
from DrissionPage.common import By as DrissionBy
page=WebPage("d")
page.get("https://baidu.com")el=(DrissionBy.ID,"s-usersetting-top")
el_se=page.ele(el)
page.actions.move_to(el_se)
time.sleep(5)
# el=(DrissionBy.LINK_TEXT,"高级搜索")
#<a href="//www.baidu.com/gaoji/advanced.html" target="_blank"><span class="set">高级搜索</span></a>
#这种的无法使用(DrissionBy.LINK_TEXT,"高级搜索") 去匹配
el=(DrissionBy.XPATH,'//*[@id="s-user-setting-menu"]/div/a[2]')
el_se2=page.ele(el)
# el_se2.click()
page.actions.click(el_se2)
time.sleep(5)page.quit()

相关文章:

  • echarts-wordcloud:打造个性化词云库
  • 【Python】成功解决TypeError: ‘float‘ object cannot be interpreted as an integer
  • Pointnet++改进即插即用系列:全网首发GLSA聚合和表示全局和局部空间特征|即插即用,提升特征提取模块性能
  • 苹果AI的国产大模型之争,没有悬念
  • MySQL高级-MVCC- readview介绍
  • 昇思25天学习打卡营第13天 | SSD目标检测
  • [leetcode]beautiful-arrangement. 优美的排列
  • 复旦大学:一个小技巧探测大模型的知识边界,有效消除幻觉
  • Python高速下载及安装的十大必备事项与C++联调
  • CesiumJS【Basic】- #057 绘制纹理填充多边形(Primitive方式)
  • [数据集][目标检测]桥梁检测数据集VOC+YOLO格式1116张1类别
  • Continual Test-Time Domain Adaptation--论文笔记
  • K8S 角色/组件及部署方式的简单概述
  • Linux shell编程学习笔记60:touch命令
  • MySQL高级-SQL优化- count 优化 - 尽量使用count(*)
  • gops —— Go 程序诊断分析工具
  • GraphQL学习过程应该是这样的
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java知识点总结(JavaIO-打印流)
  • Lucene解析 - 基本概念
  • MobX
  • Rancher-k8s加速安装文档
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 后端_ThinkPHP5
  • 计算机常识 - 收藏集 - 掘金
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 前端代码风格自动化系列(二)之Commitlint
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 学习Vue.js的五个小例子
  • 一个JAVA程序员成长之路分享
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • $.ajax()方法详解
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)STM32单片机上位机
  • (2022 CVPR) Unbiased Teacher v2
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (备忘)Java Map 遍历
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (全注解开发)学习Spring-MVC的第三天
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)编辑寄语:因为爱心,所以美丽
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .CSS-hover 的解释
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net Redis的秒杀Dome和异步执行
  • .net 发送邮件
  • .NET 指南:抽象化实现的基类
  • .net8.0与halcon编程环境构建
  • .NET导入Excel数据