1. 程式人生 > >【基於Python的Selenium2自動化測試】06 - 模擬滑鼠操作

【基於Python的Selenium2自動化測試】06 - 模擬滑鼠操作

在之前的文章中,我們已經接觸到了幾個滑鼠、鍵盤的簡單操作了,如下:

  • 點選(滑鼠左鍵)頁面按鈕:click()
  • 清空輸入框:clear()
  • 輸入字串:send_keys()

當然,對於滑鼠事件中,我們熟悉的還有:右擊、雙擊、懸停、拖動 等功能。在WebDriver中,是將這些關於滑鼠操作的方法封裝在ActionChains類中了。

ActionChains類提供了以下滑鼠相關操作方法:

  • perform(): 執行所有ActionChains中儲存的行為
  • context_click():右擊
  • double_click():雙擊
  • drag_and_drop(source, target):將source移動到target
  • move_to_element():懸停
  • submit():提交表單(一般用於模擬 回車鍵)

注意: 操作滑鼠時,首先需要先匯入模組:from selenium.webdriver.common.action_chains import ActionChains,然後使用perform()方法執行ActionChains中的行為。

這裡我們模擬一下滑鼠懸停的操作方法。

以 慕課網 為例,先登入進去慕課網,然後將塑標懸停在個人頭像的位置:

【程式碼】

# coding=utf-8
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains #滑鼠操作需引入ActionChains類 import time driver = webdriver.Firefox() driver.get("https://coding.imooc.com/") # 開啟慕課網 # ====== 定位到帳號密碼登入按鈕 driver.find_element_by_id("js-signin-btn").click() time.sleep(5) # ===== 定位到帳號密碼登入框
username = driver.find_element_by_name("email") username.clear() username.send_keys("useName_XXXX") password = driver.find_element_by_name("password") password.clear() password.send_keys("passWord_XXXX") driver.find_element_by_xpath("//div[@id='signin']/div[2]/div/form/div[5]").click() time.sleep(5) # #定位到要懸停的元素(個人頭像) target = driver.find_element_by_xpath("//div[@id='login-area']/ul/li[2]/a/img") ActionChains(driver).move_to_element(target).perform() time.sleep(8) driver.quit()

執行結果如下:
在這裡插入圖片描述