天天看點

python+selenium滑鼠和鍵盤_1.08

ActionChains類與輸入事件

使用 click() 可以模拟滑鼠的左鍵點選事件,現在的 web 頁面中有很多其他的滑鼠互動方式,比如滑鼠右擊,輕按兩下,懸停,滑鼠拖放等功能。在 WebDriver 中,将這些關于滑鼠操作的方法封裝在 ActionChains 類

1、from selenium.webdriver.common.action_chains import ActionChains

2、ActionChains(driver):用于生成模拟使用者行為

3、perform():執行存儲行為

滑鼠事件:

表達式 說明
context_click 右擊事件
double_click 輕按兩下事件
drag_and_drop 拖動(拖放)
move_to_element() 滑鼠停在一個元素上(滑鼠懸停)
click_and_hold 按下滑鼠左鍵在一個元素上

舉例:

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

driver=webdriver.Firefox()

driver.get("https://www.baidu.com")

driver.implicitly_wait(20) #等待20秒

mouse=driver.find_element_by_link_text("設定") #定位 設定 按鈕

ActionChains(driver).move_to_element(mouse).perform() #滑鼠懸停在 設定 按鈕

driver.find_element_by_link_text("搜尋設定").click() #點選設定按鈕下的 搜尋連結

driver.find_element_by_id("nr") #定位下拉框

driver.find_elements_by_tag_name('option')[1].click() #擷取下拉框第二個選項

driver.find_element_by_xpath("//option[@value='50']").click() #擷取下拉框值包含50的選項

driver.find_element_by_css_selector("[value='20']").click()

driver.find_element_by_css_selector("html body div#wrapper div.bdlayer.pfpanel div.pfpanel-bd div.pftab div.pftab_bd div#general.item.cur form div.search-setting table#gxsz tbody tr td#se-setting-3 select#nr option").click()

driver.find_element_by_css_selector("[value='20']").click() #擷取下拉框值得幾種寫法

鍵盤事件:send_keys()

from selenium.webdriver.common.keys import Keys

Key 類提供了鍵盤上幾乎所有的按鍵方法。通過send_key() 方法不僅可以用來模拟鍵盤輸入,還可以用它來模拟鍵盤上的按鍵。包括組合鍵,比如 ctrl+a 等

表達式 說明
send_keys(Keys.BACK_SPACE) 倒退鍵
send_keys(Keys.CONTRL,'a') 全選
send_keys(Keys.CONTRL,'V') 粘貼
send_keys(Keys.CONTRL,'C') 複制
send_keys(Keys.CONTRL,'X') 剪切
send_keys(Keys.ENTER) 回車

舉例:

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys

d=webdriver.Firefox()

d.get("https://www.baidu.com")

mouse=d.find_element_by_link_text("設定")

ActionChains(d).move_to_element(mouse).perform() #滑鼠懸浮在 設定上

d.find_element_by_link_text("搜尋設定").click()

dd=d.find_element_by_class_name("prefpanelgo") #儲存設定按鈕

dd.send_keys(Keys.ENTER) #滑鼠回車

繼續閱讀