日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

·5 |webdriver/common/action_chains.py-ActionChains類分析

  • 1 源碼路徑
  • 2 功能描述
  • 3 使用方法
  • 4 幾個方法
    • 4.1 `__init__`方法
    • 4.2 `perform`方法
    • 4.3 `reset_actions`方法
  • 5 ActionChains類API
  • 6 實例

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 = driverself._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

API說明
perform(self)執行已經存儲的操作
reset_actions(self)清除已存儲在本地和遠程端的操作
click(self, on_element=None)單擊元素,如果元素沒有,單擊當前鼠標位置
click_and_hold(self, on_element=None)鼠標左鍵按住某個元素,如果有on_element則點擊,如果沒有則默認點擊鼠標所在位置
context_click(self, on_element=None)右鍵單擊,如果有on_element則點擊,如果沒有則默認點擊鼠標所在位置
double_click(self, on_element=None):鼠標雙擊,如果有on_element則雙擊,如果沒有則默認點擊鼠標所在位置
drag_and_drop(self, source, target)鼠標左鍵拖拽, 即用鼠標把一個元素拖到另一個元素上
drag_and_drop_by_offset(self, source, xoffset, yoffset)鼠標左鍵拖拽, 鼠標從源元素拖拽到源元素的x,y軸偏移量上并釋放鼠標
key_down(self, value, element=None)按下按鍵,只應用于修飾健:Control, Alt and Shift
key_up(self, value, element=None)釋放按鍵,只應用于修飾健:Control, Alt and Shift
move_by_offset(self, xoffset, yoffset)鼠標移動,將鼠標移動到當前位置的xy偏移量
move_to_element(self, to_element)鼠標懸停在當前元素上
move_to_element_with_offset(self, to_element, xoffset, yoffset)將鼠標從元素的左上角開始計算開始偏移,偏移量為xy
pause(self, seconds)在指定的持續時間(秒)內暫停所有輸入
release(self, on_element=None)在元素上釋放鼠標按鈕,如果沒有元素,則在當前位置釋放
send_keys(self, *keys_to_send)在當前位置發送按鍵 ,鍵常量在Keys類中
send_keys_to_element(self, element, *keys_to_send)發送按鍵在當前定位元素上,鍵常量在Keys類中

6 實例

  • 輸入百度網址
  • 輸入NoamaNelson
  • 回車搜索
  • 最大化窗口
  • 全選輸入的內容,重新輸入N
  • 點擊“百度一下”進行搜索
# -*- coding:utf-8 -*- # 作者:NoamaNelson # 日期:2022/5/16 # 文件名稱:selen_stu.py # 作用:打開百度輸入NoamaNelson # 聯系:VX(NoamaNelson) # 博客:https://blog.csdn.net/NoamaNelsonfrom selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import timedriver = 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()

『全棧測試技術,分享,共勉,共進,提升』


總結

以上是生活随笔為你收集整理的selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。