selenium操作元素(鍵盤和鼠標事件)


前言

在前面的幾篇中重點介紹了一些元素的到位方法,到位到元素后,接下來就是需要操作元素了。本篇總結了web頁面常用的一些操作元素方法,可以統稱為行為事件
有些web界面的選項菜單需要鼠標懸停在某個元素上才能顯示出來(如百度頁面的設置按鈕)。

一、簡單操作

    1.點擊(鼠標左鍵)頁面按鈕:click()

    2.請空輸入框:clear()

    3.輸入字符串:send_keys()

    4.打開測試部落論壇后,點擊放大鏡搜索圖標,一般為了保證輸入的正確性,可以先清空下輸入框,然后輸入搜索關鍵字

 

二、submit提交表單

    1.在前面百度搜索案例中,輸入關鍵字后,可以直接按回車鍵搜索,也可以點搜索按鈕搜索。

    2.submit()一般用於模擬回車鍵

    3.但是論壇的搜索,如果用submit的話,會報錯,可是又沒有搜索點擊按鈕,怎么辦呢?


三、鍵盤操作

    1.selenium提供了一整套的模擬鍵盤操作事件,前面submit()方法如果不行的話,可以試試模擬鍵盤事件

    2.模擬鍵盤的操作需要先導入鍵盤模塊:from selenium.webdriver.common.keys import Keys

    3.模擬enter鍵,可以用send_keys(Keys.ENTER)

    4.其它常見的鍵盤操作:

鍵盤F1到F12:send_keys(Keys.F1) 把F1改成對應的快捷鍵

復制Ctrl+C:send_keys(Keys.CONTROL,'c') 

粘貼Ctrl+V:send_keys(Keys.CONTROL,'v') 

 全選Ctrl+A:send_keys(Keys.CONTROL,'a') 

剪切Ctrl+X:send_keys(Keys.CONTROL,'x') 

制表鍵Tab:  send_keys(Keys.TAB) 

這里只是列了一些常用的,當然除了鍵盤事件,也有鼠標事件


四、鼠標懸停事件

    1.鼠標不僅僅可以點擊(click),鼠標還有其它的操作,如:鼠標懸停在某個元素上,鼠標右擊,鼠標按住某個按鈕拖到

    2.鼠標事件需要先導入模塊:from selenium.webdriver.common.action_chains import ActionChains

perform() 執行所有ActionChains中的行為

move_to_element() 鼠標懸停

    3.這里以百度頁面設置按鈕為例

    4.除了常用的鼠標懸停事件外,還有

右擊鼠標:context_click()

雙擊鼠標:double_click()

依葫蘆畫瓢,替換上面案例中對應的鼠標事件就可以了

selenium提供了一整套完整的鼠標和鍵盤行為事件,功能還是蠻強大滴。

五、其他相關內容

1 鼠標 集成在webdriver.ActionChains。單擊、雙擊、右擊、拖放等等。

2 鍵盤 引入包from selenium.webdriver.common.keys import Keys。鍵盤上按鍵幾乎都有。

 

#coding=utf-8
# 鼠標 webdriver.ActionChains
# 鍵盤 Keys


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

dr = webdriver.Firefox()
dr.get("https://www.baidu.com")
dr.implicitly_wait(10)

moreproduct = dr.find_element_by_css_selector("a.bri")
webdriver.ActionChains(dr).move_to_element(moreproduct).perform()
time.sleep(3)

kw = dr.find_element_by_id("kw")
#webdriver.ActionChains(dr).context_click(kw).perform()  #鼠標右擊
kw.send_keys('測試') #鍵盤輸入
time.sleep(2)
#kw.send_keys(Keys.CONTROL,'a') #組合鍵ctrl+a
kw.send_keys(Keys.BACK_SPACE) 
time.sleep(2)
kw.send_keys(Keys.RETURN)
time.sleep(2)
dr.quit()

 

在學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429


免責聲明!

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



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