python之selenium玩轉鼠標操作(ActionChains)


前提:

一般人用selenium自動化時,會用到模擬鼠標操作的情況,像單擊,雙擊,右擊,左擊啊等,這個時候我們就要用到ActionChains了。

內容:

1.ActionChains用法整理

   click(on_element=None) ——單擊鼠標左鍵

    click_and_hold(on_element=None) ——點擊鼠標左鍵,不松開

    context_click(on_element=None) ——點擊鼠標右鍵

    double_click(on_element=None) ——雙擊鼠標左鍵

    drag_and_drop(source, target) ——拖拽到某個元素然后松開

    drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個坐標然后松開

    key_down(value, element=None) ——按下某個鍵盤上的鍵

    key_up(value, element=None) ——松開某個鍵

    move_by_offset(xoffset, yoffset) ——鼠標從當前位置移動到某個坐標

    move_to_element(to_element) ——鼠標移動到某個元素

    move_to_element_with_offset(to_element, xoffset, yoffset) ——移動到距某個元素(左上角坐標)多少距離的位置

    perform() ——執行鏈中的所有動作

    release(on_element=None) ——在某個元素位置松開鼠標左鍵

    send_keys(*keys_to_send) ——發送某個鍵到當前焦點的元素

    send_keys_to_element(element, *keys_to_send) ——發送某個鍵到指定元素

2.ActionChains的用法

了解了以上的方法,我們來將一下它的用法,它有兩種寫法:

第一個是鏈式寫法,顧名思義連在一起寫:

例子:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")

# 定位到要懸停的元素
above = driver.find_element_by_link_text("設置")
# 對定位到的元素執行鼠標懸停操作
ActionChains(driver).move_to_element(above).perform()

第二個是分布式寫發,顧名思義就是分開寫:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")

# 定位到要懸停的元素
above = driver.find_element_by_link_text("設置")
# 對定位到的元素執行鼠標懸停操作
action=ActionChains(driver)
action.move_to_element(above)
action.perform()

 

  • from selenium.webdriver import ActionChains

導入提供鼠標操作的 ActionChains 類。

  • ActionChains(driver)

調用 ActionChains()類, 將瀏覽器驅動 driver 作為參數傳入。

  • move_to_element(above)

context_click()方法用於模擬鼠標右鍵操作, 在調用時需要指定元素定位。

  • perform()

執行所有 ActionChains 中存儲的行為, 可以理解成是對整個操作的提交動作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM