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

selenium的鼠标操作

1、鼠标操作

鼠标时间对应的方法在那个类中?

ActionChains类,实例化 鼠标对象


1、context_click(element) # 右击
2、double_click(element)  #双击
3、double_and_drop(source, target)  # 拖拽
4、move_to_element(element)  # 悬停 【重点】
5、perform()  # 执行以上事件的方法 【重点】
 

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
element=driver.find_element(By.ID,'kw')
# 实例化 鼠标对象
action=ActionChains(driver)
#鼠标右键,执行鼠标右键点击(上下文菜单)
#action.context_click(element)
#鼠标双击
#action.double_click(element)
elementNews=driver.find_element(By.LINK_TEXT,"新闻")
#点击鼠标左键并保持按下状态
#action.click_and_hold(elementNews)
#新闻那个按钮保持按下状态,蓝色状态
#点击鼠标左键,就直接进入新闻页面
#action.click(elementNews)
#鼠标悬停,鼠标停在新闻那个地方,蓝色状态
action.move_to_element(elementNews)

# 鼠标执行操作!!!不执行没效果
action.perform()
sleep(3)
driver.close()

2、等待

1、为什么要设置元素等待

​ 由于电脑配置或网络原因,在查找元素时,元素代码未在第一时间内被加载出来,而抛出未找到元素异常。

2、什么是元素等待

​ 元素在第一次未找到时,元素等待设置的时长被激活,如果在设置的有效时长内找到元素,继续执行代码,如果超出设置的时长未找打元素,抛出未找到元素异常。

3、元素等待分类

​ 隐式等待:针对全局元素生效;(讲这个)

​ 显示等待:稍微麻烦,有兴趣的可以下去了解,他是针对单个元素生效。

driver.implicitly_wait(30) # 一般情况下设置30秒

解释:

​ 隐式等待针对所有元素生效。 2. 一般情况下为前置必写代码(1.获取浏览器驱动对象;2. 最大化浏览器;3. 设置隐式等待)

参考:自动化测试——selenium(完结篇)_selenium自动化测试-CSDN博客

from time import sleep

from selenium import webdriver

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
# 设置正确的驱动路径

driver = webdriver.Chrome()
# 2、窗口最大化
driver.maximize_window()
# 3、设置隐式等待
driver.implicitly_wait(30)
# 打开网页
driver.get("https://baidu.com")


# 定位输入框
input_element = driver.find_element(By.ID, 'kw')

# 输入内容并发送组合键
input_element.send_keys("Hello, World!")
sleep(3)
input_element.send_keys(Keys.COMMAND, 'a')  # 全选
sleep(3)
input_element.send_keys(Keys.COMMAND, 'c')  # 复制
sleep(3)
input_element.send_keys(Keys.COMMAND, 'v')  # 粘贴
sleep(3)
# 关闭浏览器
driver.quit()

相关文章:

  • 每天一道算法题【蓝桥杯】【x的平方根】
  • 通义万相2.1 图生视频:为AI绘梦插上翅膀,开启ALGC算力领域新纪元
  • Qt5.10版本以下 qml ui语言动态切换
  • MySQL EXPLAIN 详解
  • 网络安全linux命令
  • CAAC无人机考证备考清单
  • 《用 python、MySQL 和 Chart.js 打造炫酷数据看板》实战案例笔记
  • SQLiteStudio:一款免费开源跨平台的SQLite管理工具
  • Kerckhoffs原理
  • 磁盘和文件系统
  • 【商城实战(23)】筑牢安全防线,防范常见漏洞
  • 【系统架构设计师】测试方法
  • 【Java项目】基于JSP的二手手机回收系统
  • Stable Diffusion 模型文件 .ckpt 与 .safetensors 的区别
  • html中利用 onerror 事件监听图片加载错误的情况
  • Android Retrofit 框架的接口代理与调用模块源码分析(二)
  • 【2025】Electron 基础二(进程模型三大核心)
  • 碳中和小程序:助力用户记录低碳行为,推动环保生活
  • 03_添加一个简单的字符设备并支持read操作
  • OpenManus测出死循环bug
  • 俄媒:俄乌伊斯坦布尔谈判将于北京时间今天17时30分开始
  • 英德宣布开发射程超2000公里导弹,以防务合作加强安全、促进经济
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 人民日报:从“轻微免罚”看涉企执法方式转变
  • 夜读|尊重生命的棱角
  • 郑州通报涉“健康证”办理有关问题查处进展情况