其他分享
首页 > 其他分享> > UI自动化测试之ActionChains类

UI自动化测试之ActionChains类

作者:互联网

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

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

from selenium.webdriver.common.action_chains import ActionChains

ActionChinas类的源码具体如下:

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)

  在构造方法中,要想使用ActionChinas类,首先就需要针对这个类做类的实例化的操作,源码中的drievr其实可以理解为webdriver的类实例化后的对象,针对该类实例化的源码具体为:

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()
针对ActionChains类进行实例化操作

一、悬浮

        悬浮的交互就以百度搜索的设置为例,鼠标悬浮到设置(action.move_to_element().perform()),就会显示出下拉框的内容信息,具体交互信息如下:

 

实现上面操作具体案例代码如下:

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() 的方法,以百度搜索输入框为例,来演示右键的操作,具体实现的代码为:

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方法一般主要应用于数据的交互方面,比如:添加用户姓名的按钮,假设程序规定用户名称是唯一的,那么双击后是否插入了两条用户名称一样的信息了,这就需要来验证,提交数据后,在数据列表中使用用户名称来查询,查看是否存在两条数据,一般而言,前后端的程序员都是会处理这些的,但是作为测试我们还是需要验证这些测试场景。下面主要结合百度搜索为例,具体代码如下:

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()

 

标签:webdriver,ActionChains,selenium,driver,UI,自动化,action,import
来源: https://www.cnblogs.com/wrwangrong/p/16435791.html