1. 程式人生 > >python+selenium 滑鼠事件操作

python+selenium 滑鼠事件操作

一、前言

       除了可以使用 click( ) 來模擬滑鼠的單擊操作,現在Web產品中還提供了更豐富的滑鼠互動方式,例如滑鼠右鍵、雙擊、懸停、拖動等功能,在WebDriver中,將這些關於滑鼠操作的方法都封裝在 ActionChains 類中。

     ActionChains 類提供了滑鼠操作的常用方法:
perform()    執行所有ActionChains中儲存的行為
context_click()    右擊
double_click()    雙擊
drag_and_drop()    拖動
move_to_element()    滑鼠懸停

二、詳細使用

1.滑鼠右擊操作

    from selenium import webdriver
    #引入ActionChains類
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要右擊的元素
    right_click = driver.find_element_by_id("id")
    #對元素進行右擊操作
    ActionChains(driver).context_click(right_click).perform()
    #......

ActionChains(driver):呼叫ActionChains類,將瀏覽器驅動driver作為引數傳入;

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

2.滑鼠懸停

move_to_element()方法可以模擬滑鼠懸停的動作,其用法與context_click()相同;

    from selenium import webdriver
    #引入ActionChains類
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要懸停的元素
    above = driver.find_element_by_id("id")
    #對元素進行右擊操作
    ActionChains(driver).move_to_element(above).perform()
    #......

3.滑鼠雙擊

double_click() 方法用於模擬滑鼠雙擊操作;

    from selenium import webdriver
    #引入ActionChains類
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位到需要雙擊的元素
    double_click = driver.find_element_by_id("id")
    #對元素進行右擊操作
    ActionChains(driver).double_click(double_click).perform()
    #......

4.滑鼠拖動操作

drag_and_drop(source,target) 在源位置元素上按住滑鼠左鍵,然後移動到目標元素上釋放。

source:滑鼠拖動的源元素

target:滑鼠釋放的目標元素

    from selenium import webdriver
    #引入ActionChains類
    from selenium.webdriver.common.action_chains import ActionChains
     
    driver = webdriver.Chrome()
    driver.get("url")
    #......
    #定位元素的源位置
    source = driver.find_element_by_id("id")
    #定位元素要移到到的目標位置
    target = driver.find_element_by_id("id")
    #對元素進行拖動操作
    ActionChains(driver).drag_and_drop(source,target).perform()
---------------------
作者:一條漂浮的楓葉
來源:CSDN
原文:https://blog.csdn.net/zb455405775/article/details/80675718
版權宣告:本文為博主原創文章,轉載請附上博文連結!