前言:我们在操作浏览器的时候,都需要一些鼠标悬停才能显示的下拉框或者选择下拉框的内容。

鼠标操作类是 ActionChains
鼠标事件有:
 1. 悬浮 - 用的最多最多 move_to_element
 2. 右键 context_click
 3. 点击 click
 4. 双击 double_click
 5. 拖拽 drag_and_drop
 6. 滚动 — js
 7. 按住左键不松 click_and_hold
 8. 释放 release

执行的命令:
 1. 重置 reset_actions
 2. 执行操作 perform() # 一定要带

我们选百度首页的下拉框来做操作。如下:

只有鼠标悬浮才能现在下拉列表
代码实现:

from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get("http://www.baidu.com")#找到设置
ele = driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_settingicon"]')
#鼠标悬停
ActionChains(driver).move_to_element(ele).perform()
#点击“高级搜索”
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
driver.find_element_by_xpath('//a[text()="高级搜索"]').click()

那根据高级搜索 里的下拉框我们怎么处理? 使用 Select方法就可以搞定

具体代码如下:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get("http://www.baidu.com")#找到设置
ele = driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_settingicon"]')
#鼠标悬停
ActionChains(driver).move_to_element(ele).perform()
#点击“高级搜索”
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
driver.find_element_by_xpath('//a[text()="高级搜索"]').click()
# 1、找到select元素对象,实例化Select类。
WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH,'//select[@name="ft"]')))
s = Select(driver.find_element_by_xpath('//select[@name="ft"]'))
#2、选择下拉框的值,下拉框的值可以通过value,index,text三种方法选择option对应的值,以下三种方法任选其一,或者都可以写进代码里,互不影响
time.sleep(2)
#2.1 通过value值来定位
s.select_by_value("ppt")
time.sleep(2)
#2.2通过下标来定位
s.select_by_index(1)  # 从0开始
time.sleep(2)
#通过text文本来定位
s.select_by_visible_text("所有格式")

:在鼠标悬停的时候,请不要触碰鼠标,以免发生错误

web自动化之鼠标悬停事件相关推荐

  1. pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

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

    一.鼠标和键盘操作 1.鼠标操作 1.1 鼠标操作实现方式 selenium提供鼠标操作的方法及步骤 需要导入ActionChains类 通过ActionChains实例化鼠标对象 action = ...

  3. python tk 获取鼠标事件_在Tkin中列出鼠标悬停事件函数

    我正在制作一个医学工具的图形用户界面作为一个类项目.给定一个条件,它应该输出一堆从不同网站收集的治疗方案,比如webMD.我希望能够处理所列出的任何一种疗法的鼠标悬停事件,以提供关于该疗法的更多信息( ...

  4. vue鼠标移动上去提示_关于如何处理vue中鼠标悬停事件的详细说明

    最后,在查看结果中,发现滑过鼠标事件将触发该事件,但它将闪烁并清除. 当鼠标停留在单元格上时鼠标滑过事件,遮罩层将消失并重复出现. 开关. 为了缓解这种情况,setTimeout也用于延迟显示和隐藏在 ...

  5. selenium 鼠标悬停事件

    1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖动: 2.鼠标事件需要先导入模块: from selenium.webdriver.co ...

  6. html鼠标的点击事件失效,为什么鼠标悬停事件不起作用呢?

    源自:2-3 鼠标悬停事件添加 为什么鼠标悬停事件不起作用呢? var area = document.getElementById('moocBox'); var con1 = document.g ...

  7. C#连接数据库、绑定数据,鼠标悬停事件

    | 啥都不懂就学呗 private void button1_Click(object sender, EventArgs e) { //string constr = "Data Sour ...

  8. Js鼠标悬停事件,简单的实现导航栏鼠标划过内容弹窗的效果。可读性较高的鼠标悬停事件

    Js鼠标悬停事件,简单的实现导航栏鼠标划过内容弹窗的效果.可读性较高的鼠标悬停事件 <!DOCTYPE html> <html lang="en"> < ...

  9. html js鼠标悬停事件,鼠标悬停在轴标签d3.js javascript上的事件

    有没有人知道是否有可能在y轴标签上有鼠标悬停事件? 例如,我在下面有一个散点图. y轴上的标签是"area1","area2"和"area3" ...

最新文章

  1. Java反射详细介绍
  2. Python - 移除List中重复项的五种常用方法
  3. Centos7安装apt-get 在centos下用yum install xxx        不是使用apt-get
  4. python爬去百度图片_python实现爬取百度图片的方法示例
  5. Python学习笔记:文件(File)
  6. 直线绘制算法-数值微分法(DDA)
  7. c# 用SqlParameter实现多字段模糊查询
  8. visio中图形任意位置添加连接点
  9. html自动定时弹窗,html网页弹窗代码 setinterval 定时任务啊
  10. Scratch软件编程等级考试一级——20210911
  11. css 图片 鼠标样式,鼠标样式 - CSS | 绿叶学习网
  12. gii无法访问 yii2_Gii的CURD生成无法访问?
  13. phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
  14. 0211书架的制作过程(使用3DsMAX2016)
  15. 如何从8 道面试题中,看出浏览器渲染过程与性能优化
  16. 小红书app复制链接转换为可直接访问链接
  17. LevelDB Arena源码分析
  18. dotnet夜话 第六、七集笔记
  19. 计算机等级考试数据库三级模拟题3
  20. 什么是栈?什么是队列?栈与队列的特点

热门文章

  1. vuepress+百度统计 API 调用+源码
  2. 导出PDF文件中文显示不完整
  3. WaitForSingleObject SetEvent
  4. THIS IS YYYUYU‘S TIME !
  5. python-flask框架-mysql-月新增用户数、当月活跃用户数等的查询及返回数据的逻辑
  6. 数据结构4——linuxC(二叉树和排序算法)
  7. 【计算机图形学|直线生成算法】中点画线法
  8. Mysql分区 - Range分区
  9. MySQL(InnoDB剖析):10---文件之(参数文件.cnf)
  10. JavaScript修改Css样式