您好,登錄后才能下訂單哦!
前面的例子中,點(diǎn)擊事件都是通過click()方法實(shí)現(xiàn)鼠標(biāo)的點(diǎn)擊事件。其實(shí)在WebDriver中,提供了許多鼠標(biāo)操作的方法,這些操作方法都封裝在ActionChains類中,包括鼠標(biāo)右擊、雙擊、懸停和鼠標(biāo)拖動等功能。
ActionChains類提供的鼠標(biāo)操作事件
鼠標(biāo)懸停
頁面上有些下拉菜單,在鼠標(biāo)放到元素上以后,下面的菜單才會顯示出來。下面的圖片就是一個(gè)例子
百度首頁上的設(shè)置項(xiàng),下面的菜單默認(rèn)不會顯示,將鼠標(biāo)停在上面后才會顯示,這就是鼠標(biāo)的懸停操作,菜單顯示以后就可以對下面的項(xiàng)進(jìn)行點(diǎn)擊操作
進(jìn)入搜索設(shè)置的代碼
# -*- coding: utf-8 -*- from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") time.sleep(3) settings = driver.find_element_by_link_text('設(shè)置') webdriver.ActionChains(driver).move_to_element(settings).perform() time.sleep(1) settings_search = driver.find_element_by_class_name('setpref') settings_search.click() time.sleep(3) driver.close()
打開頁面后,根據(jù)鏈接的文本信息找到設(shè)置項(xiàng),使用ActionChains的move_to_element()方法將鼠標(biāo)懸停在設(shè)置上,然后找到搜索設(shè)置項(xiàng)
鼠標(biāo)的右擊、雙擊和拖動事件都是通過上述的方法調(diào)用,只要將方法替換一下就可以了。拖動事件需要傳入兩個(gè)參數(shù),第一個(gè)參數(shù)是拖動的起點(diǎn)元素,第二個(gè)參數(shù)是終點(diǎn)元素
webdriver.ActionChains(driver).context_click("右擊的元素定位").perform() #右擊事件 webdriver.ActionChains(driver).double_click("雙擊的元素定位").perform() #雙擊事件 webdriver.ActionChains(driver).drag_and_drop("拖動的起點(diǎn)元素", "拖動的終點(diǎn)元素").perform() #拖動事件
鍵盤事件
Keys類中提供了幾乎所有的鍵盤事件,在鼠標(biāo)事件中用到了兩個(gè)鍵盤事件,鍵盤的向下按鍵(send_keys(Keys.DOWN))和鍵盤的回車事件(send_keys(Keys.ENTER))。鍵盤的事件需要導(dǎo)入Keys模塊
from selenium.webdriver.common.keys import Keys
所有的鍵盤事件都包含在這個(gè)模塊中,send_keys用來模擬鍵盤輸入,除此之外,還可以用例模擬鍵盤上的按鍵,不僅支持單個(gè)的鍵盤按鍵,還支持組合按鍵輸入
# -*- coding: utf-8 -*- from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") time.sleep(3) driver.find_element_by_id('kw').send_keys('selenium') #在搜索框中輸入"selenium" driver.find_element_by_id('kw').send_keys(Keys.SPACE) #輸入空格鍵 driver.find_element_by_id('kw').send_keys('python') #在搜索框中輸入"python" driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a') #輸入Control+a模擬全選 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c') #輸入Control+c模擬復(fù)制 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v') #輸入Control+v模擬粘貼 driver.find_element_by_id('kw').send_keys(Keys.ENTER) #輸入回車代替點(diǎn)擊搜索按鈕 time.sleep(3) driver.close()
下面是一些常用的鍵盤事件:
– Keys.BACK_SPACE:回退鍵(BackSpace)
– Keys.TAB:制表鍵(Tab)
– Keys.ENTER:回車鍵(Enter)
– Keys.SHIFT:大小寫轉(zhuǎn)換鍵(Shift)
– Keys.CONTROL:Control鍵(Ctrl)
– Keys.ALT:ALT鍵(Alt)
– Keys.ESCAPE:返回鍵(Esc)
– Keys.SPACE:空格鍵(Space)
– Keys.PAGE_UP:翻頁鍵上(Page Up)
– Keys.PAGE_DOWN:翻頁鍵下(Page Down)
– Keys.END:行尾鍵(End)
– Keys.HOME:行首鍵(Home)
– Keys.LEFT:方向鍵左(Left)
– Keys.UP:方向鍵上(Up)
– Keys.RIGHT:方向鍵右(Right)
– Keys.DOWN:方向鍵下(Down)
– Keys.INSERT:插入鍵(Insert)
– DELETE:刪除鍵(Delete)
– NUMPAD0 ~ NUMPAD9:數(shù)字鍵1-9
– F1 ~ F12:F1 - F12鍵
– (Keys.CONTROL, ‘a(chǎn)'):組合鍵Control+a,全選
– (Keys.CONTROL, ‘c'):組合鍵Control+c,復(fù)制
– (Keys.CONTROL, ‘x'):組合鍵Control+x,剪切
– (Keys.CONTROL, ‘v'):組合鍵Control+v,粘貼
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。