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