python自動化中使用selenium處理滑鼠事件的方法詳解

2020-12-25 python高手養成

我們知道,在使用Python進行自動化處理過程中,常常需要跟滑鼠打交道,如頁面要求滑鼠單擊、懸停等動作,這時候我們怎麼通過selenium提供的驅動來識別並處理滑鼠事件呢?這就是我們今天來探討和梳理的內容。

selenium模擬滑鼠處理事件

我們先來看下自動化測試中為什麼要模擬滑鼠操作。

【基礎知識】

隨著Web前端技術的發展,前端開發人員利用H5、JavaScript、AJAX等技術,使得我們看到的網頁也越來越華麗、交互性也越來越強大,網頁與用戶交互方式也越來越多。這對於用戶來說可能是好事,但是對於Web測試人員來說,網頁提供的這些交互模式使得測試更加複雜。

如何能夠利用selenium提供的驅動來讓瀏覽器自行模擬滑鼠事件,比如單擊、右擊、懸停、拖動等操作。selenium提供了哪些接口函數呢?

瀏覽器模擬處理滑鼠事件的接口類是selenium.webdriver.common.action_chains中的ActionChains類,看著是不是很複雜,其實使用起來一點都不難,大家往下看。

下面內容是重點哦

我們來看下本文的重點內容。

【ActionChains方法探討】

正確使用ActionChains類的方法是這樣的

ActionChains(driver).double_click(element).perform()

就這樣一句就可以讓瀏覽器模擬滑鼠進行操作,下面我們對參數進行講解如下:

driver:將瀏覽器驅動作為參數傳遞給ActionChains類

double_click:需要滑鼠模擬的動作,常見的動作有以下幾個

perform(element): 執行所有 ActionChains 中存儲的行為

---context_click(element) 滑鼠右擊

---double_click(element)滑鼠雙擊

---drag_and_drop(element) 拖動滑鼠

---move_to_element(element)滑鼠懸停

這幾個動作名字很好記,直接作為ActionChains的方法調用即可。至於這些方法中傳入的參數element很好理解,就是我們要執行滑鼠動作的元素,它是我們使用webdriver.find_element_by_XXX()中找到的元素。這裡就不再做講解了。

要注意傳入參數的次序

講到這裡,滑鼠操作其實還沒開始執行,我們必須使用perform()方法提交給驅動執行才能算完成了滑鼠事件。

【舉例說明】

我們知道,大部分企業網站的導航條都是這種滑鼠懸停到某一個導航元素中時,展開相應的目錄信息,我們以國內比較出名的一個智能語音服務提供商主頁為例來看一下這個例子。

測試模擬滑鼠懸停事件原始碼

執行結果我就不截圖展示了,大家可以搜索某大訊飛的主頁測試以下這段代碼。

【總結】

好了,今天的內容就到這裡了,我們只是使用ActionChains展示了滑鼠懸停的使用方法,感興趣的童鞋們可以自己試一下其他的功能。國內很多網際網路廠商都提供了網盤功能,打開這些網盤的頁面,這些頁面往往提供了一些滑鼠右鍵操作的方式,我們可以使用上面的context_click()方法模擬滑鼠右鍵操作。這裡只是做一引申,感興趣的童鞋們自己試試看。後面我們還有精彩內容,歡迎加關注。

轉載請註明出處,百家號:Python高手養成。

相關焦點

  • Selenium自動化測試-6.滑鼠鍵盤操作
    到此為止,已經學完了8種定位方式以及利用Firefox插件協助定位,學會定位,Selenium自動化就成功了一半。But,我們好像只是知道定位,定位後的操作並不多,今天就來系統的了解下滑鼠鍵盤操作。滑鼠操作之前定位的時候,用到了click點擊元素,selenium除了click模擬滑鼠單擊操作外,還提供了雙擊、右擊、懸停、拖動等操作,使用這些要導入ActionChains類:
  • Python+Selenium詳解(超全)
    一、Selenium+Python環境搭建及配置1.1 selenium 介紹selenium 是一個 web 的自動化測試工具,不少學習功能自動化的同學開始首選 selenium ,因為它相比 QTP 有諸多有點:免費
  • Python使用selenium定位及訪問屬性的方法
    在使用Python製作爬蟲時經常會用到selenium,現就selenium經常要用到一些函數及屬性作說明:from selenium import webdriverdriver=webdriver.Firefox()url="http://xxxx.com"driver.get(url)driver.close
  • python 自動化,Helium 憑什麼取代 Selenium?
    作者:星安果來源: AirPython1. python自動化:Helium 是什麼?Chrome 和 FireFox 瀏覽器版本更新慢、遺留 Bug 及文檔少3.準備一下切換到對應的虛擬環境下,通過 pip 命令安裝依賴即可# 安裝依賴pip3 install helium接著,我們在 IDE 中,使用 helium.
  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • 自動化-Selenium 3-第一個Demo(Python版)
    1、使用查找元素定位工具來獲取元素的屬性值等信息。例如使用Firefox的Firebug、FirePath插件查找定位元素。:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
  • Python無頭爬蟲Selenium系列(01):像手工一樣操作瀏覽器
    本系列將全面講解 Python 中一個非常成熟的庫 —— selenium,並教會你如何使用它爬取網絡上所需的數據自動化爬蟲雖然方便,但希望大家能顧及網站伺服器的承受能力,不要高頻率訪問網站。並且千萬不要採集敏感數據!!
  • Selenium python+selenium 方法大全
    一、selenium 定位方法1、WebDriver8 種基本元素定位方式1)find_element_by_id(
  • Python Selenium智能等待
    前言在使用python selenium進行自動化測試實踐的過程中,經常會遇到元素定位不到,彈出框定位不到等等各種定位不到的情況,在大多數的情況下,無非是以下兩種情況:1、有frame存在,定位前,未switch到對應的frame內2、元素未加載完畢(從界面看已經顯示),但DOM樹還在load狀態或在加載js
  • 使用Python OpenCV處理圖像之詳解使用OpenCV處理鍵盤滑鼠事件
    那麼問題來了,如果我們需要在圖像打開顯示時,檢測滑鼠的輸入並執行相應的函數,應該怎麼做呢?cv2的處理機制是怎樣的呢?滑鼠響應事件具體如何描述呢?今天,我們來詳細了解下。【滑鼠處理】OpenCV中滑鼠處理事件的類型我們來看下OpenCV中到底有多少個滑鼠事件,我們來看一下,具體如下圖所示。
  • Python+ Selenium自動化登錄騰訊QQ郵箱實例
    學習了Python語言一段時間後,在公司的項目裡也使用到了python來寫測試腳本,一些重複的操作都使用腳本來處理了。大大的提高工作效率,減少了一些手工重複的操作。  以下是使用unittest框架寫的簡單的郵箱自動登錄實例,分享給大家,有不足之處可留言交流。
  • 【曾勇推薦】Web自動化測試(全網最給力自動化教程)
    回到頂部2.6 操作元素(鍵盤和滑鼠事件)前言在前面的幾篇中重點介紹了一些元素的定位方法,定位到元素後,接下來就是需要操作元素了。本篇總結了web頁面常用的一些操作元素方法,可以統稱為行為事件有些web界面的選項菜單需要滑鼠懸停在某個元素上才能顯示出來(如百度頁面的設置按鈕)。
  • Python 題庫自動化面試題
    8、findElement()和findElements()方法有什麼區別 9、登錄按鈕除了用 click 方法進行點擊以外還有其他方式嗎? 10、怎麼提高Selenium腳本的執行速度 11、怎麼對含有驗證碼的功能進行自動化測試的 12、怎麼驗證複選按鈕是不是被選中 13、如何處理 alert 彈窗?
  • python爬蟲之selenium抓取淘寶商品信息
    簡介本節採用python爬蟲相關技術獲取淘寶商品信息。採用的技術有selenium、pyquery及urllib.parse等。selenium可以模擬用戶執行的操作,是一個自動化測試工具,我們可以根據自己的需要預先設置selenium按照我們設置好的步驟進行操作,而在爬蟲中我們使用selenium可以解決javascript動態執行代碼的問題,不用費心去解析js如何運行,運行後產生的信息,直接使用selenium模擬實際登陸網頁的操作,獲取我們需要的信息進行分析,成功幫我們避開一系列複雜的通信過程,方便使用者。
  • 你正在學 Web 自動化測試?Selenium 基本操作你了解嘛?|原力計劃
    作者 | 遇上方知友__QAQ責編 | 王曉曼 出品 | CSDN博客在自動化測試中,我們都知道是通過定位元素來實現的,那麼有時候我們定位元素定位不到是為什麼呢?通俗點就是網頁中的嵌套網頁,如果我們在做自動化測試中,需要定位的元素包含在了 iframe 內聯框架裡,那麼我們就需要跳進 iframe ,如果說還需要做後續的操作,但後續的元素不在 iframe 中,這時候就需要再跳出 iframe 。我們現在都知道了什麼是 iframe ,那麼接下來我們拿126郵箱登錄做下示例。
  • UI自動化測試上傳文件方法都在這裡了!
    實施UI自動化測試的時候,經常會遇見上傳文件的操作,那麼對於上傳文件你知道幾種方法呢?今天我們就總結一下幾種常用的上傳文件的方法,並分析一下每個方法的優點和缺點以及哪種方法效率,穩定性更高。send_keys方法上傳,這也是這個方法的限制第二種方法:是AutoIT工具,它是一個類似腳本語言的軟體,利用此軟體我們可以方便的實現模擬鍵盤、滑鼠、窗口等操作,實現自動化安裝官網地址:https://www.autoitscript.com/site/autoit/downloads
  • selenium自動化利用excel文件實現批量傳值
    selenium自動化測試的時候,經常會用到數據來做批量測試,常用的方式有讀取txt文件,xml文件,csv文件以及excel文件幾種,本文給大家講解一下在selenium 中如何利用excel文件實現批量傳值,python讀取excel主要用到xlrd庫,此庫可在pycharm手動下載此類庫
  • python+selenium元素定位(上)
    今天主要想和大家分享下,selenium中是如何定位元素的,這塊內容包括id,name,tag name,class name,link text,partial link text,xpath,css selector八種定位方法,其對應python的方法如下圖一所示。
  • Selenium Webdriver上傳文件,別傻傻的分不清得3種方法
    還有更多此類文件上傳的自動化方法。本教程涵蓋的主題包括HTML中的文件上傳,Selenium中處理文件上傳的方法(其中包括以下方法:使用sendKeys,然後使用AutoIT和Robot類)。本教程還說明了在Selenium中使用這些方法處理文件上傳的代碼的實現,此後,我們將看到一些示例,這些示例在Selenium的幫助下執行文件上傳。
  • Python自動化用這些知識點就夠了!
    這可能是很多非IT職場人士面臨的困惑,想把python用到工作中,卻不知如何下手?python在自動化辦公領域越來越受歡迎,批量處理簡直是加班族的福音。自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。下面一一詳解。