WebDriverWait 类实战—Python自动化测试实战(7)

发表于:2019-6-20 10:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:无涯    来源:51Testing软件测试网原创

分享:
  3.6  ActionChains 类实战
  在功能的自动化测试中,经常会用到鼠标事件。在 Selenium 中,主要在action_chains 模块的 ActionChains 类中,导入的方式为:
  from selenium.webdriver.common.action_chains import ActionChains
  1. ActionChains 类详解
  在 ActionChains 类中提供了对常用鼠标操作的方法,例如,鼠标悬浮到某一元素等操作。要使用 ActionChains 类中的方法首先需要对 ActionChains 类进行实例化,该类的构造函数参数为 driver,也就是 WebDriver 实例化后的对象,对ActionChinas 类实例化后可以调用它里面的方法,实例化该类的代码如下:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
from selenium import  webdriver import  time as t
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Firefox() driver.maximize_window() driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
#对ActionChains类进行实例化
actionChains=ActionChains(driver) driver.quit()
  对 ActionChains 类实例化后,输入对象 actionChains,按下鼠标,就会显示该类中的方法,如图 3-6-1 所示。
  
图 3-6-1
  2. 鼠标悬浮操作
  move_to_element 方法用来使鼠标悬浮到某一元素上。这里以百度首页的搜索设置为例,要想选择"搜索设置"选项,首先需要鼠标悬浮到"设置"选项上,显示"搜索设置"后才可以点击,如图 3-6-2 所示。
  
图 3-6-2
  要想实现拖动鼠标悬浮到"设置",再点击"搜索设置"按钮,测试代码如下:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
from selenium import  webdriver import  time as t
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Firefox() driver.implicitly_wait(30) driver.get('http://www.baidu.com')
#对ActionChains类进行实例化
actionChains=ActionChains(driver) locator=driver.find_element_by_css_selector('#u1 > a.pf')
#鼠标悬浮到设置
actionChains.move_to_element(locator).perform()
#点击搜索设置
driver.find_element_by_xpath('//*[@id="wrapper"]/div[6]/a[1]').click() driver.quit()
  运行以上代码就可以看到,鼠标移动到"设置"选项,显示"搜索设置"选项后,点击"搜索设置"按钮,并跳转到"搜索设置"页面(参见图 3-6-2)。
  3. 鼠标右键操作
  content_click 是触发鼠标右键操作的方法。这里以百度首页为例,要想用鼠标在搜索输入框上点击右键时,弹出鼠标右键的交互信息,实现的代码如下:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
from selenium import  webdriver import  time as t
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Firefox() driver.implicitly_wait(30) driver.get('http://www.baidu.com')
#对ActionChains类进行实例化
actionChains=ActionChains(driver)
so=driver.find_element_by_id('kw')
#鼠标在百度搜索输入框右键操作
actionChains.context_click(so).perform() t.sleep(6) driver.quit()
  4. 鼠标双击操作
  double_click 是触发鼠标双击操作的方法,一般使用在有数据交互的地方。例如,有这样一个业务,点击按钮会向数据库中插入一条数据,而且只能插入一条数据,如果前端对双击没有进行处理的话,双击按钮后就会向数据库插入两条数据。这里以百度首页的"百度一下"按钮为例,演示双击事件在自动化测试中的应用。实现的代码如下:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
from selenium import  webdriver import  time as t
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Firefox() driver.implicitly_wait(30) driver.get('http://www.baidu.com')
#对ActionChains类进行实例化
actionChains=ActionChains(driver) driver.find_element_by_id('kw').send_keys('Selenium') locator=driver.find_element_by_id('su')
#对"百度一下"按钮双击操作
actionChains.double_click(locator).perform() driver.quit()

版权声明:51Testing软件测试网获得电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号