python3+selenium實現(xiàn)Web自動化3:鼠標(biāo)操作和鍵盤操作!

一、Selenium之鼠標(biāo)操作和鍵盤操作

1.鼠標(biāo)事件
在webdriver中,鼠標(biāo)操作的方法封裝在 ActionChains 類提供。ActionChains類提供了鼠標(biāo)操作的常用方法:

ActionChains(driver),將瀏覽器驅(qū)動 driver 作為參數(shù)傳入。

(1) perform(): 執(zhí)行所有 ActionChains 中存儲的行為,是對整個操作的提交動作;
(2) context_click(): 右擊
(3) double_click(): 雙擊
(4) drag_and_drop(): 拖動
(5) move_to_element(): 鼠標(biāo)懸停, 在調(diào)用時需要指定元素定位

具體代碼如下:

#!/usr/bin/env python # -*- encoding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

base_url = 'http://www.baidu.com/' browser = webdriver.Chrome('../tools/chromedriver.exe')
browser.get(base_url)

# 定位到懸停元素處
above = browser.find_element_by_link_text('設(shè)置')
# 對元素執(zhí)行鼠標(biāo)懸停操作
ActionChains(browser).move_to_element(above).perform()
time.sleep(5)

# 右擊
ActionChains(browser).context_click().perform()
time.sleep(5)

# 定位到要雙擊的元素處 # double_click_element = browser.find_element_by_link_text('新聞') # print(double_click_element) # ActionChains(browser).move_to_element(double_click_element).double_click().perform() # time.sleep(5)

# 拖動元素
drag_and_drop_element = browser.find_element_by_link_text('地圖')
ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform()
time.sleep(5)

browser.quit()

2.鍵盤事件

前面的 send_keys() 方法用來模擬鍵盤輸入;keys() 類提供了鍵盤上幾乎所有按鍵的方法,組合鍵也是可以的。

常用的鍵盤操作如下:

send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 制表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER) 回車鍵(Enter)
send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)
send_keys(Keys.CONTROL,'c') 復(fù)制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘貼(Ctrl+V)
send_keys(Keys.F1) 鍵盤 F1
……
send_keys(Keys.F12) 鍵盤 F12
#!/usr/bin/env python
# -*- encoding: utf-8 -*-

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


base_url = 'https://www.baidu.com/'
driver = webdriver.Chrome('../tools/chromedriver.exe')
driver.get(base_url)


# 先輸入百度
driver.find_element_by_id('kw').send_keys('百度')
# 1.刪除度
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
time.sleep(3)

# 2.鍵入空格
driver.find_element_by_id('kw').send_keys(Keys.SPACE)
driver.find_element_by_id('kw').send_keys('加入空格')
time.sleep(5)

# 3.ctrl+a 全選輸入框里的內(nèi)容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
time.sleep(3)

# 4.ctrl+x 剪切輸入框里的內(nèi)容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
time.sleep(3)

# 5. ctrl+v 粘貼剪切的內(nèi)容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
time.sleep(3)

# 6. 回車
driver.find_element_by_id('su').send_keys(Keys.ENTER)
time.sleep(3)


driver.quit()


參考鏈接:
https://www.cnblogs.com/csmashang/p/12706696.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容