ActionChains

模拟鼠标悬浮到某一个位置,做一系列的连贯操作,使用Selenium提供的ActionChains模块

引入方式

  1. from selenium.webdriver.common.action_chains import ActionChains

ActionChains这个模块的实现的核心思想就是,当你调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在List里,当你调用perform()方法,队列中的时间会依次执行。

drag_and_drop

  1. # 将source元素拖放至target元素处,参数为两个elementObj
  2. ActionChains(driver).drag_and_drop(source=source,target=target)
  3.  
  4. # 将一个source元素 拖动到针对source坐上角坐在的x y处 可存在负宽度的情况和负高度的情况
  5. ActionChains(driver).drag_and_drop_by_offset(source, x, y)
  6.  
  7. # 这种也是拖拽的一种方式,都是以源元素的左上角为基准,移动坐标
  8. ActionChains(driver).click_and_hold(dom).move_by_offset(169,188).release().perform()
  1. from selenium import webdriver
  2. driver=webdriver.Chrome()
  3. driver.get("http://ui.imdsx.cn/move/")
  4. driver.maximize_window()#将窗口放大
  5. driver.execute_script('window.scrollTo(0,0);')
  6. from selenium.webdriver.common.action_chains import ActionChains
  7. s=driver.find_element_by_css_selector('#dragger')
  8. s1=driver.find_element_by_css_selector('#dragger1')
  9. s2=driver.find_element_by_css_selector('#dragger2')
  10. s3=driver.find_element_by_css_selector('#dragger3')
  11. t=driver.find_element_by_css_selector('#i1')
  12. t1=driver.find_element_by_css_selector('#i2')
  13. t2=driver.find_element_by_css_selector('#i3')
  14. t3=driver.find_element_by_css_selector('#i4')
  15. #拼图
  16. ActionChains(driver).drag_and_drop(s,t).drag_and_drop(s1,t1).drag_and_drop(s2,t2).drag_and_drop(s3,t3).perform()

move_to_element:

  1. # 鼠标移动到某一个元素上,结束elementObj
  2. ActionChains(driver).move_to_element(e)
  3.  
  4. # 鼠标移动到制定的坐标上,参数接受x,y
  5. ActionChains(driver).move_by_offset(e['x'],e['y'])
  1. from selenium import webdriver
  2. driver=webdriver.Chrome()
  3. driver.get("http://ui.imdsx.cn/uitester/")
  4. driver.maximize_window()#将窗口放大
  5. driver.execute_script('window.scrollTo(0,0);')#执行jsapi
  6. #鼠标操作 move_to_element:鼠标悬浮到元素上面才展示
  7. from selenium.webdriver.common.action_chains import ActionChains
  8. dive=driver.find_element_by_css_selector('#a')
  9. ActionChains(driver).move_to_element(dive).perform()
  10. e=driver.find_element_by_css_selector('#dis1')
  11. e.click()
  12. print(e.is_displayed())#判断元素是否显示,显示了才可以对其进行操作
  13. #或者
  14. ActionChains(driver).move_to_element(dive).click(driver.find_element_by_css_selector('#dis1')).perform()

click:

  1. # 单击事件,可接受elementObj
  2. ActionChains(driver).click()
  3.  
  4. # 双击事件,可接受elementObj
  5. ActionChains(driver).double_click()
  6.  
  7. # 点击鼠标右键
  8. ActionChains(driver).context_click()
  9.  
  10. # 点击某个元素不松开,接收elementObj
  11. ActionChains(driver).click_and_hold()
  12.  
  13. # # 某个元素上松开鼠标左键,接收elementObj
  14. ActionChains(driver).release()

Key_down与key_up:

  1. # key_down 模拟键盘摁下某个按键 key_up 松开某个按键,与sendkey连用完成一些操作,每次down必须up一次否则将出现异常
  2. ActionChains(driver).key_down(Keys.CONTROL,dom).send_keys('a').send_keys('c').key_up(Keys.CONTROL)\
  3. .key_down(Keys.CONTROL,dom1).send_keys('v').key_up(Keys.CONTROL).perform()

Keys实际时Selenium提供的一个键盘事件模块,在模拟键盘事件时需要导入Keys模块

引入路径:

  1. from selenium.webdriver.common.keys import Keys

Selenium-ActionChainsApi介绍的更多相关文章

  1. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  2. Selenium 工具介绍、安装、配置及使用

    概念 selenium是一款跨平台开源工具,用于web的功能完整性測试,想做压力測试的能够换软件了 先看一眼官方站 http://docs.seleniumhq.org/download/ 首先要FQ ...

  3. Selenium API 介绍

    Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...

  4. 自动化测试-Selenium家谱介绍

    一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...

  5. python基础 — Selenium 详细介绍

    一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 ...

  6. robotframework - selenium Api介绍

    一.介绍下selenium常用的api *** Settings ***Library SeleniumLibraryResource baidu业务.txtResource UI分层.txt *** ...

  7. Selenium简单介绍

    WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...

  8. 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍

    (一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...

  9. [Selenium] Grid 介绍

    Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...

  10. UI自动化测试简介及Selenium工具的介绍和环境搭建

    自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...

随机推荐

  1. 用Vue来实现音乐播放器(十五):处理得到的歌手数据

    之前得到的歌手数据是用forEach遍历添加的  没有顺序性  我们希望得到的数据是title:"热门"的数据在最上面  title为字母的数据按字母从低到高顺序排列 var ho ...

  2. Oracle-数据导出和导入

    对数据库进行逻辑备份或数据转储,也就是对数据库实时导入.导出操作时,既可以使用常规的EXP/IMP客户端程序,也可以使用数据泵技术:IMPDP/EXPDP 使用数据泵导出或导入的优点: 1.数据泵导出 ...

  3. vue 组件传参

    路由配好了 再传个参呗 注:组件信息流转的时候只能单向1 > 父子传参传参:通过属性prop:传递数据 a.父组件传参给子组件 子组件: <ul> <li v-for=&quo ...

  4. CSS去除点击按钮时出现的虚线框

    1. outline:none://需要配合仅ie6和ie7支持的css属性blr:expression_r(this.onFocus=this.blur()); 优点:较为常用 缺点:ie6.ie7 ...

  5. Java 操作pdf与excel

    java 操作pdf组件  itextpdf <dependency> <groupId>com.itextpdf</groupId> <artifactId ...

  6. python学习第四十三天生成器和next()关联

    我们在用列表生成式的时候,如果有一百万的数据,内存显然不够用,这是python想要什么数据,就生产什么数据给你,就产生了生成器,下面简单讲述生成器用法 1,生成器的用法 a=([a*a for a i ...

  7. P5504 [JSOI2011]柠檬

    传送门 显然考虑 $dp$ ,发现从右往左和从左往右是一样的,所以只考虑一边就行 发现对于切的左右端点,选择的 $s0$ 一定要为左右端点的贝壳大小,不然这个端点不产生贡献还不如分开来单个贡献 所以设 ...

  8. 15、前端知识点--MVVM

    MVVM模式的理解 MVVM模式里面,核心是数据. 各种前端框架,最核心的说就是保持了数据与视图的同步. 数据驱动思想:数据驱动视图. Vue不建议手动操作DOM. 以前是指令操作DOM,其实本质上底 ...

  9. java定时任务详解

    首先,要创建你自己想要定时的实体类 @Service("smsService")@Transactionalpublic class SmsSendUtil { @Autowire ...

  10. JAVA对象序列化和反序列化学习

    JAVA序列化就是将JAVA对象转化为字节序列的过程,而JAVA反序列化就是将字节序列转化为JAVA对象的过程. 这一过程是通过JAVA虚拟机独立完成,所以一个对象序列化后可以在任意时间和任意机器上反 ...