zoukankan      html  css  js  c++  java
  • 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()

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

    欢迎关注微信公众号“Python自动化测试”
  • 相关阅读:
    markdown 书写文档的框架
    使用snap
    如何让pandas表格直接转换为markdown表格
    我们需要怎样去写博客
    jupyter notebook 远程访问
    安装tensorflowGPU版本
    Data Science Project
    使用python处理地理数据:Geopandas
    python移植环境
    Jupyter notbook& REVEAL.JS& nbconvert 使用jupyter notebook制作slides
  • 原文地址:https://www.cnblogs.com/weke/p/15476351.html
Copyright © 2011-2022 走看看