1. 程式人生 > >Python selenium的webdriver之滑鼠懸停

Python selenium的webdriver之滑鼠懸停

#coding=UTF-8
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get(r"http://www.baidu.com/")

# 對定位到的元素進行懸停操作(百度首頁用link定位到的設定位置不對)
# attrible = driver.find_element_by_link_text("設定")
elem = driver.find_element_by_id('u1'
) attrible = elem.find_element_by_class_name('pf') ActionChains(driver).move_to_element(attrible).perform() print(attrible) time.sleep(10) attrible = driver.find_element_by_class_name('setpref') ActionChains(driver).click(attrible).perform() print(attrible) time.sleep(10) driver.refresh() driver.close()

以百度首頁的設定為例:

定位到設定元素的位置,使用

move_to_element

此時在定位setpref元素就不會報錯說找不到了。

注意這裡的點選需要也使用ActionChains的click方法。

能不能直接在find後加click()主要看元素屬性。

滑鼠的常用方法總結:

click(on_element=None) ——單擊滑鼠左鍵

click_and_hold(on_element=None) ——點選滑鼠左鍵,不鬆開

context_click(on_element=None) ——點選滑鼠右鍵

double_click(on_element=None) ——雙擊滑鼠左鍵

drag_and_drop(source, target) ——拖拽到某個元素然後鬆開

drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個座標然後鬆開

key_down(value, element=None) ——按下某個鍵盤上的鍵

key_up(value, element=None) ——鬆開某個鍵

move_by_offset(xoffset, yoffset) ——滑鼠從當前位置移動到某個座標

move_to_element(to_element) ——滑鼠移動到某個元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移動到距某個元素(左上角座標)多少距離的位置

perform() ——執行鏈中的所有動作

release(on_element=None) ——在某個元素位置鬆開滑鼠左鍵

send_keys(*keys_to_send) ——傳送某個鍵到當前焦點的元素

send_keys_to_element(element, *keys_to_send) ——傳送某個鍵到指定元素