selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类
源码 selenium py Action Common WebDriver
2023-09-11 14:15:56 时间
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
- 点击“百度一下”进行搜索
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import 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()
在这里还是要推荐下我自己建的软件测试学习Q群: 746506216,群里都是学测试的,如果你想学或者正在学习测试,欢迎你加入,大家都是测试党,不定期分享干货(只有软件测试相关的),包括我自己整理的一份2022最新的Python自动化测试进阶资料和零基础教学,欢迎进阶中和对测试感兴趣的小伙伴加入!
相关文章
- Selenium--WebDriverWait--你知道显示等待?(内附二次封装源码)
- 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码
- 模糊控制器设计源码
- 【Selenium核心技术篇】selenium操作form表单操作输入用户名、密码并提交
- 《Android 源码设计模式解析与实战》——第1章,第1.7节总结
- macOS SwiftUI 教程之三栏App架构动态修改标题和设置工具栏 (教程含源码)
- macOS SwiftUI 教程之 TabView构建切换组件 (教程含源码)
- 《Python数据可视化之matplotlib实践》 源码 第二篇 精进 第七章
- Volley 源码解析
- AlphaGo简易版MuGo源码解析
- zookeeper服务发现实战及原理--spring-cloud-zookeeper源码分析
- spring源码分析之spring-messaging模块详解