Selenium系列(四) - 詳細解讀鼠標操作


如果你還想從頭學起Selenium,可以看看這個系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

 

其次,如果你不懂前端基礎知識,需要自己去補充哦,博主暫時沒有總結(雖然我也會,所以我學selenium就不用復習前端了哈哈哈...)

 

引入HTML頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>小菠蘿測試筆記</title>
</head>
<body>

<a>用戶名:</a>
<input id="username" class="username">
<a>密碼</a>
<input id="password" name="password">
<button class="login">登錄</button>
<br>
<p>測試啦</p>
<p>再一次測試啦</p>
<br>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
   class="mnav sp dot">終極抗擊肺炎啊</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-2020"
   class="mnav sp dot">抗擊肺炎</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
   class="mnav sp dot">抗擊肺炎</a>

<div>
    <ul>
        <li class="li">111</li>
        <li class="li">222</li>
        <li class="li">333</li>
    </ul>
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ul>
</div>
</body>
</html>

 

背景

用selenium做自動化,有時候會遇到需要模擬鼠標操作才能進行的情況,比如單擊、雙擊、點擊鼠標右鍵、拖拽等等。

而selenium給我們提供了一個類來處理這類事件—— ActionChains 

 

有哪些鼠標操作呢?

  • 執行操作
  • 左鍵、右鍵單擊、雙擊
  • 鼠標懸停到元素、偏移處
  • 長按
  • 拖動

點擊右邊目錄即可跳轉哦! -------------->>>>>>>>>> 

 

執行操作

perform() 方法

主要是調用其他操作方法后,都要再次調用這個方法,表示執行某個鼠標操作,后面會有例子

 

左鍵、右鍵單擊、雙擊

from selenium.webdriver import ActionChains
from selenium import webdriver

driver = webdriver.Chrome("../resources/chromedriver.exe")

# 創建實例
chains = ActionChains(driver)

# 訪問網址
driver.get("file:///C:/test.html")

# 登錄按鈕
username = driver.find_element_by_id("username")
login_btn = driver.find_element_by_class_name("login")
password = driver.find_element_by_id("password")

# 左鍵點擊
chains.click(username).perform()

# 右鍵點擊
chains.context_click(username).perform()

# 雙擊
chains.double_click(password).perform()

 

鼠標懸停到元素、偏移處

# 懸停到設置按鈕
chains.move_to_element(login_btn).perform()

# 懸停到指定偏移量
chains.move_to_element_with_offset(login_btn, 2, 2).perform()

知識點

move_to_element_with_offset() 是先找到元素,再根據元素位置偏移指定偏移量

 

長按

# 長按
chains.click_and_hold(login_btn).perform()

 

拖動

# 拖動1
chains.drag_and_drop(source=username, target=password)

# 拖動2
chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)

知識點

  • drag_and_drop 將源元素拖動到目標元素處
  • drag_and_drop_by_offset 將源元素拖動指定偏移量

 


免責聲明!

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



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