【Selenium鍵盤和鼠標的自動化操作】

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

鼠標的自動化操作:

首先要引入包

from selenium.webdriver import ActionChains

操作如下:

ActionChains可以對需要模擬鼠標操作才能進行的情況,比如單擊、雙擊、點擊鼠標右鍵、拖拽等等進行操作。ActionChains方法列表:

click(on_element=None) ——單擊鼠標左鍵

click_and_hold(on_element=None) ——點擊鼠標左鍵,不鬆開

context_click(on_element=None) ——點擊鼠標右鍵

double_click(on_element=None) ——雙擊鼠標左鍵

drag_and_drop(source, target) ——拖拽到某個元素然後鬆開

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個座標然後鬆開

key_down(value, element=None) ——按下某個鍵盤上的鍵

key_up(value, element=None) ——鬆開某個鍵

move_by_offset(xoffset, yoffset) ——鼠標從當前位置移動到某個座標

move_to_element(to_element) ——鼠標移動到某個元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移動到距某個元素(左上角座標)多少距離的位置

perform() ——執行鏈中的所有動作

release(on_element=None) ——在某個元素位置鬆開鼠標左鍵

send_keys(*keys_to_send) ——發送某個鍵到當前焦點的元素

send_keys_to_element(element, *keys_to_send) ——發送某個鍵到指定元素

 

demo小測試(進入百度搜索自動化,雙擊按鈕選擇文字)

 

from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
driver = webdriver.Firefox()
driver.maximize_window()
# driver.implicitly_wait(40)
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("自動化")
x=driver.find_element_by_id("kw")
sleep(2)
ActionChains(driver).double_click(x).perform()
sleep(2)

如圖

上面還有很多鼠標操作的方法,可以試試。

 

下面介紹一下鍵盤的操作方法

鍵盤的自動化操作

首先引入包------

from selenium.webdriver.common.keys import Keys

方法如下:

send_keys()    輸入框輸入內容

——如:driver.find_element_by_id("id").send_keys("XXX")

send_keys(Keys.BACK_SPACE)    向左刪除一個字符                                              ——如:driver.find_element_by_id("id").send_keys("XXX")

send_keys(Keys.SPACE)    輸入空格

——如:driver.find_element_by_id("id").send_keys(Keys.SPACE)

send_keys(Keys.CONTROL,‘a‘)    ctrl+a 全選輸入框的內容

——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘a‘)

send_keys(Keys.CONTROL,‘x‘)    ctrl+x 剪切輸入框的內容

——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘x‘)

send_keys(Keys.CONTROL,‘v‘)    ctrl+v 粘貼到輸入框

——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘v‘)

send_keys(Keys.ENTER)    回車代替點擊

——如:driver.find_element_by_id("id").send_keys(Keys.ENTER)

send_keys(Keys.TAB)    製表鍵(Tab)

——如:driver.find_element_by_id("id").send_keys(Keys.TAB)

send_keys(Keys.ESCAPE)    回退鍵(Esc)

——如:driver.find_element_by_id("id").send_keys(Keys.ESCAPE) 

send_keys(Keys.CONTROL,‘c‘)    複製

——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘c‘)  

 

跟鼠標操作類似,只是要注意使用方法

一個小的demo(全鍵盤操作複製自動化粘貼2次搜索)如下

from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.maximize_window()
# driver.implicitly_wait(40)
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("自動化")
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"c")
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")
driver.find_element_by_id("kw").send_keys(Keys.TAB)
driver.find_element_by_id("kw").send_keys(Keys.ENTER)

以上就是Selenium鍵盤和鼠標的自動化操作了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章