鼠標事件
在webdriver中,將這些關於鼠標操作的方法封裝在ActionChains類提供。
- ActionChains類中常用的鼠標事件:
- perform():執行所有ActionChains中存儲的行為
- context_click():右擊
- double_click():雙擊
- drag_and_drop():拖動
- move_to_element():鼠標懸停
from selenium import webdriver #導入提供鼠標事件的ActionChains from selenium.webdriveer.common.action_chains import ActionChains driver = webdriver.Chrome() driver.get('https://www.baidu.com') #定位到懸停的元素 above = driver.find_element_by_link_text('設置') #對定位到的元素進行鼠標懸停操作 ActionChains(driver).move_to_element(above).perfrom()
from selenium.webdriver import ActionChains
>>導入提供鼠標操作的ActionChains類。
ActionChains(driver)
>>調用ActionChains()類,將瀏覽器驅動driver作為參數傳入
move_to_element(above)
>>context_click()方法用於模擬鼠標右鍵操作,在調用時需要指定元素定位
perform()
>>執行所有的ActionChains中存儲的行為,可以理解成對整個操作的提交動作。
實例:
coding = utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Firefox() driver.get("http://172.16.10.7/bugfree/index.php/site/login") #登陸 driver.find_element_by_id("LoginForm_username").send_keys("solo") driver.find_element_by_id("LoginForm_username").send_keys(Keys.TAB) #昨天的知識點Keys.TAB driver.find_element_by_id("LoginForm_password").send_keys("test") driver.find_element_by_id("LoginForm_password").send_keys(Keys.ENTER) driver.find_element_by_id("LoginForm_rememberMe").click() time.sleep(5) #定位要點擊的元素,先定義一個變量 problemlist = driver.find_element_by_xpath("html/body/div/div[2]/div[5]/div[3]/div[3]/table/tbody/tr[1]/td[5]/span/a") #driver.find_element_by_xpath("//a[contains(@href,'/bugfree/index.php/case/list/1')]") ActionChains(driver).context_click(problemlist).perform() #對定位到的元素執行鼠標右鍵操作 ActionChains(driver).double_click(problemlist).perform() #對定位到的元素執行鼠標雙擊操作 #報錯:Missing or invalid type argument for pointer action,還沒有定位出原因 driver.quit()