selenium-鼠标操作ActionChains

2023-11-11

actionChains常用操作:

                                        move_to_element           移动到某个元素-悬停

                                        click                                 点击

                                        double_click                    双击

                                        context_click                    右键

                                        drag_and_drop                拖拽

以百度为例:

        1.将鼠标悬停至更多按钮      

        ele_more = driver.find_element(By.XPATH, '//a[@name="tj_briicon"]')
        #ActionChains(driver).move_to_element(ele_more).perform()

                为方便操作,将actionsChains初始化单独列出来,红色和黑色二选一均可

        ac = ActionChains(driver)
        ac.move_to_element(ele_more).perform()

        2.点击更多中的翻译,上述基础上继续。

        ele_fanyi = driver.find_element(By.XPATH, '//a[@name="tj_fanyi"]')
        ac.click(ele_fanyi).perform()

        3.点击X关闭弹出框

        wins = driver.window_handles
        driver.switch_to.window(wins[-1])
        time.sleep(1)
        loc = (By.XPATH, '//a[@class="desktop-guide-close"]')
        WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
        driver.find_element(*loc).click()

        4.上完整代码

import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
ele_more = driver.find_element(By.XPATH, '//a[@name="tj_briicon"]')
ac = ActionChains(driver)
ac.move_to_element(ele_more).perform()
ele_fanyi = driver.find_element(By.XPATH, '//a[@name="tj_fanyi"]')
ac.click(ele_fanyi).perform()
wins = driver.window_handles
driver.switch_to.window(wins[-1])
time.sleep(1)
loc = (By.XPATH, '//a[@class="desktop-guide-close"]')
WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()

注:千万记得perform().

       涉及到鼠标自动化操作的时候,千万不要碰鼠标

                

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium-鼠标操作ActionChains 的相关文章

随机推荐

  • 安装apache后无法访问localhost但可以访问127.0.0.1的解决方法

    localhost与127 0 0 1的概念和工作原理之不同 概念 localhost 也叫local 正确的解释是 本地服务器 127 0 0 1 在windows等系统的正确解释是 本机地址 本机服务器 工作原理 localhot 是不
  • VS2019的常见错误和调试功能

    目录 一 VS2019常见问题 1 scanf问题 2 如何在当前页面下再创建新项目和创建多项目后无法运行当前项目的问题 二 VS2019的调试功能 不打断点 三 VS2019的调试功能 打断点 四 总结 一 VS2019常见问题 1 sc
  • 爬虫实战爬取豆瓣电影Top250榜单电影

    爬虫实战爬取豆瓣电影Top250榜单电影 实战内容 直接上代码 重要地方有注释 from bs4 import BeautifulSoup import re import urllib request urllib error impor
  • Postman + Pre-resuestScript:预请求脚本发送GET请求

    通过预执行脚本 Pre request Script 发送GET请求 一 效果演示 二 控制台 Console 打印响应结果 代码注释详解 pm sendRequest 是发送一个请求 function 中的 err 表示请求返回的错误信息
  • Node的Buffer对象和fs模块

    一 Node的模块化管理 1 模块化 node应用程序由模块组成 遵循的是CommonJS模块规范 使用模块管理的好处是隔离模块的作用域 避免出现命名冲突 2 什么是CommonJS 是一套代码的规范 构建一个在浏览器之外的JavaScri
  • 报错:ImportError: rocketmq dynamic library not found解决方法

    目录 一 ImportError rocketmq dynamic library not found 二 OSError librocketmq so cannot open shared object file No such file
  • Shell脚本的通配符和特殊符号

    通配符 符号 意义 0到无穷个任意字符 一个任意字符 如 abcd 表示a b c d中任意一个 在编码顺序内的所有字符 如 0 9 表示0到9间的数字 反向选择 如 abc 表示非a b c的其它字符 特殊符号 符号 内容 管线 分割两个
  • 项目质量管理__七种基本质量工具__老七工具和新七工具

    七种基本质量工具 用于在PDCA Plan Do Check Action 循环的框架内解决与质量相关的问题 1 老七工具 包括因果图 流程图 核查表 帕累托图 直方图 控制图和散点图 因果图 又称鱼骨图或石川馨图 流程图 也称过程图 核查
  • 热部署系统实现

    热部署 是指在不关闭或重启服务的情况下 更新Java类文件或配置文件 实现修改内容生效 通过热部署 可提高开发效率 节省程序打包重启的时间 同时 可实现生产环境中需要不停机或重启的服务的升级 在大厂的核心中台 订单服务 商品服务往往有几千台
  • @Cacheable缓存相关使用总结

    本篇文章主要讲解Spring当中 Cacheable缓存相关使用 在实际项目开发中 有些数据是变更频率比较低 但是查询频率比较高的 此时为了提升系统性能 可以使用缓存的机制实现 避免每次从数据库获取 第一步 使用 EnableCaching
  • 【LeetCode】贪心

    贪心 55 跳跃游戏 55 跳跃游戏 55 跳跃游戏 给定一个非负整数数组 nums 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 示例 1 输入 nums 2 3 1 1
  • rsync实时同步

    rsync实时同步 文章目录 rsync实时同步 toc 一 简介 二 特性 三 常用选项 四 部署 1 目标服务器操作 2 源服务器操作 3 设置脚本开机自启 一 简介 rsync是Linux系统下的数据镜像备份工具 从字面意思上 rsy
  • linux 中移动文件_如何在Linux中移动文件

    linux 中移动文件 在Linux中移动文件看似比较简单 但是可用的选项却比大多数人想象的要多 本文向初学者讲授如何在GUI和命令行中移动文件 同时还解释了幕后实际发生的情况 并介绍了许多经验丰富的用户很少探索的命令行选项 搬什么 在研究
  • STM32CubeMX基础例程(小熊派):02.按键轮询检测

    1 准备开发板 这里我选用了一块网红开发板 小熊派 这款板子的人气比较高 还是全国大学生物联网设计竞赛 华为杯 的华为竞赛开发板 我个人也比较喜欢用这款板子 这款板子在放在纸箱吃灰半年之后 被我重新拿了起来 并想借此写博客的机会 整理一下自
  • TensorFlow 的基本概念和使用场景

    TensorFlow 是一个开源的 跨平台的机器学习框架 由 Google 于 2015 年发布 它提供了一套完整的工具链 可以帮助开发者快速构建和训练各种类型的机器学习模型 TensorFlow 的核心概念是张量 Tensor 和计算图
  • 详解代码覆盖率及各语言主流工具

    更多内容关注微信公众号 fullstack888 代码覆盖 英语 Code coverage 是软件测试中的一种度量 描述程序中源代码被测试的比例和程度 所得比例称为代码覆盖率 在做单元测试时 代码覆盖率常常被拿来作为衡量测试好坏的指标 甚
  • 微策略笔试题

    1 堆栈的区别 优劣 以及栈最多层次 一 预备知识 程序的内存分配 一个由C C 编译的程序占用的内存分为以下几个部分 1 栈区 stack 由编译器自动分配释放 存放函数的参数值 局部变量的值等 其 操作方式类似于数据结构中的栈 2 堆区
  • mysql 批量修改自增数据_SqlServer Mysql数据库修改自增列的值及相应问题的解决方案...

    SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作 尝试过其自增列值的变更 但是通过SQL 语句修改自增列值 是严格不允许的 直接报错 无法更新标识列 自增列名称 sql server我测试是2008
  • 微信小程序开发的基本流程

    一 微信小程序简介 1 微信小程序简称小程序 张小龙在微信公开课 Pro 上发布的小程序正式上线 时间是2017年1月9日 2 微信小程序这个词可以分解为 微信 和 小程序 两部分 1 其中 微信 可以理解为 微信中的 指的是小程序的执行环
  • selenium-鼠标操作ActionChains

    actionChains常用操作 move to element 移动到某个元素 悬停 click 点击 double click 双击 context click 右键