UI自动化测试实战之ActionChains类实战(六)

      ActionChains主要是针对鼠标事件的处理,在鼠标事件中常用的交互为悬浮,双击,以及右键等

操作。如果想使用ActionChains的类,首先需要导入它,导入的命令为:

from selenium.webdriver.common.action_chains import ActionChains

下面我们可以查看该类的详细的使用,该类的源码具体如下;

   def __init__(self, driver):
        """
        Creates a new ActionChains.

        :Args:
         - driver: The WebDriver instance which performs user actions.
        """
        self._driver = driver
        self._actions = []
        self.w3c_actions = ActionBuilder(driver)

在构造方法中,我们可以看到,要想使用该类,那么首先就需要针对这个类我们需要做类的实例化

的操作,源码中的drievr其实可以理解为webdriver的类实例化后的对象,那么针对该类实例化的源

码具体为:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
#author:无涯

from selenium import  webdriver
from selenium.webdriver.common.action_chains import ActionChains
import  time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
#针对ActionChains类进行实例化操作
action=ActionChains(driver=driver)
driver.quit()

下面详细的演示下这部分的应用。

一、悬浮

        悬浮的交互这地方就以百度搜索的设置来案例,鼠标悬浮到设置,就会显示出下拉框的内容信息,

具体交互信息如下:

下面就实现这部分,具体案例代码如下:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
#author:无涯


from selenium import  webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import  time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.implicitly_wait(30)
#获取到百度设置的元素属性
locator=driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')
action=ActionChains(driver=driver)
#鼠标悬浮到设置按钮
action.move_to_element(locator).perform()
t.sleep(5)
driver.quit()

二、右键

        右键使用到的方法为content_click() 的方法,下面就以百度搜索输入框为案例,来演示右键的

操作,具体实现的代码为:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
#author:无涯

from selenium import  webdriver
from selenium.webdriver.common.action_chains import ActionChains
import  time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
#针对ActionChains类进行实例化操作
action=ActionChains(driver=driver)
so=driver.find_element_by_id('kw')
action.context_click(so).perform()
t.sleep(5)
driver.quit()

三、鼠标双击      

         double_click一般主要应用于数据的交互方面,比如添加用户姓名的按钮,假设程序规定用户名称是唯一

的,那么双击后是否插入了两条用户名称一样的信息了,这就需要来验证,提交数据后,然后在数据列表中

使用用户名称来查询,查看是否存在两条数据,一般而言,前后端的程序员都是会处理这些的,但是作为测试

我们还是需要验证这些测试场景。下面主要结合百度搜索来作为案例,具体代码如下:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
#author:无涯

from selenium import  webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('Selenium3')
#对百度搜索按钮进行双击
soButton=driver.find_element_by_id('su')
actions=ActionChains(driver=driver)
actions.double_click(soButton).perform()
t.sleep(5)
driver.quit()

        感谢您的阅读,后续会持续更新!

posted @ 2021-10-28 16:34  无涯(WuYa)  阅读(145)  评论(0编辑  收藏  举报