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) ——发送某个键到指定元素 

你可能感兴趣的:(Python selenium的webdriver之鼠标悬停)