写点什么

selenium 源码通读·5 |webdriver/common/action_chains.py-ActionChains 类分析

作者:虫无涯
  • 2023-04-12
    陕西
  • 本文字数:1356 字

    阅读完需:约 4 分钟

1 源码路径

selenum/webdriver/common/action_chains.py
复制代码


2 功能描述

  • 提供鼠标操作,模拟用户的鼠标行为;

  • 如鼠标的各种单击、双击、滑动、拖拽等操作。

3 使用方法

  • 源码说的很清晰了,只要使用以下的方法即可:


  ActionChains can be used in a chain pattern::
menu = driver.find_element_by_css_selector(".nav") hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()
Or actions can be queued up one by one, then performed.::
menu = driver.find_element_by_css_selector(".nav") hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
actions = ActionChains(driver) actions.move_to_element(menu) actions.click(hidden_submenu) actions.perform()
复制代码

4 几个方法

4.1 __init__方法

  • 需要传递一个driver,这个在实际应用中就是使用这个类的时候需要传递一个driver

  • 源码:


 def __init__(self, driver):        """        Creates a new ActionChains.
:Args: - driver: The WebDriver instance which performs user actions. """ self._driver = driver self._actions = [] if self._driver.w3c: self.w3c_actions = ActionBuilder(driver)
复制代码

4.2 perform方法

  • 用来执行存储的所有动作或操作;

  • 源码:


    def perform(self):        """        Performs all stored actions.        """        if self._driver.w3c:            self.w3c_actions.perform()        else:            for action in self._actions:                action()
复制代码

4.3 reset_actions方法

  • 用来清空所有的动作;

  • 源码:


    def reset_actions(self):        """            Clears actions that are already stored locally and on the remote end        """        if self._driver.w3c:            self.w3c_actions.clear_actions()        self._actions = []
复制代码

5 ActionChains 类 API

6 实例

  • 输入百度网址

  • 输入 NoamaNelson

  • 回车搜索

  • 最大化窗口

  • 全选输入的内容,重新输入 N

  • 点击“百度一下”进行搜索


# -*- coding:utf-8 -*-# 作者:NoamaNelson# 日期:2022/5/16# 文件名称:selen_stu.py# 作用:打开百度输入NoamaNelson# 联系:VX(NoamaNelson)# 博客:https://blog.csdn.net/NoamaNelson
from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChainsimport time
driver = webdriver.Chrome()driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("NoamaNelson")time.sleep(1)driver.find_element_by_id("kw").send_keys(Keys.ENTER)driver.maximize_window()time.sleep(0.5)driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")time.sleep(0.5)driver.find_element_by_id("kw").send_keys("N")su = driver.find_element_by_id("su")ActionChains(driver).click(su).perform()time.sleep(1)driver.quit()
复制代码


发布于: 刚刚阅读数: 3
用户头像

虫无涯

关注

专注测试领域各种技术研究、分享和交流~ 2019-12-11 加入

CSDN测试领域优质创作者 | CSDN博客专家 | 阿里云专家博主 | 华为云享专家 | 51CTO专家博主

评论

发布
暂无评论
selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析_Python_虫无涯_InfoQ写作社区