鼠標操作
- 由 selenium 的 ActionChains 類來完成模擬鼠標操作。ActionChains(譯:按可深柴死)
鼠標操作步驟:ActionChains
- 1、實例化
- 2、調用對元素的鼠標操作方法
- 3、 調用perform()執行。
需要引入 ActionChains 類:
from selenium.webdriver.common.action_chains import ActionChains
示例:ActionChains(driver).方法名1().context_ click().perform()
ActionChains類里面的方法行為:
初始化的時候需要傳driver 對象,內置的一個空列表中:
- perform:執行所有的行為
- (譯:潑峰)執行所有存儲的操作
- reset_actions:將整個列表清空
- (譯:瑞斯特.安可深思)清除已在本地和遠程端存儲的操作
- click:點擊
- (譯:可立克)點擊一個元素。
- click_and_hold:拖拽
- (譯:可立克.按得.后的)按住元素上的鼠標左鍵。不松
- context_click:右擊
- (譯:康泰克斯特.可立克)對元素執行上下文單擊(右擊)。
- double_click:雙擊
- (譯:大泊兒.可立克)雙擊其中的一個元素。
- drag_and_drop:拖拽到目標后松開
- (譯:轉個.按得.趙坡)按住源元素上的鼠標左鍵,然后移動到目標元素並釋放鼠標按鈕。
- drag_and_drop_by_offset:偏移拖拽
- (譯:轉個.按得.趙坡.白.奧佛賽特)按住源元素上的鼠標左鍵,然后移動到目標偏移量並釋放鼠標按鈕。
- key_down:在一個元素上按住一個鍵不松
- (譯:k當)只發送一個按鍵,不釋放它。只能與修改鍵(控制,Ctrl、Alt和Shift)一起使用。
- key_up: 松開按鍵
- (譯:K阿婆)釋放修改鍵。
- move_by_offset:鼠標移動
- (譯:目.白.奧佛賽特)將鼠標移動到當前鼠標位置的偏移量。
- move_to_element:鼠標懸浮
- (譯:目.圖.按了們特)將鼠標移動到元素的中間。
- move_to_element_with_offset:鼠標坐標偏移
- (譯:目.圖.按了們特.位子.奧佛賽特)將鼠標移動指定元素的偏移量。偏移量相對於元素的左上角。
- pause:暫停
- (譯:普斯)在指定的持續時間內暫停所有輸入(以秒為單位)--每個動作執行后需要暫停幾秒不執行之后操作
- release:松開
- (譯:瑞麗斯)釋放元素上被按住的鼠標按鈕。
- send_keys:輸入
- (譯:森德.K死)向元素發送鍵。
- send_keys_to_element:在元素上輸入文本
- (譯:森德.K死.圖.按了們特)
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() driver.get("http://www.baidu.com") # 找到元素 ele = driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_settingicon"]') # 1、鼠標操作實例化;鼠標懸浮在百度首頁“設置”按鈕上方,暫停0.5秒,點擊操作,perform執行之前的所有操作 ActionChains(driver).move_to_element(ele).pause(0.5).click(ele).perform() # 2、能不用1的鼠標操作的盡量不用,鼠標操作不穩定 # ele.click()