Selenium WebDrivers 学习记录 - 键盘 & 鼠标事件

perform() 执行链中的所有动作

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains#鼠标
from selenium.webdriver.common.keys import Keys#键盘
# 驱动路径
chromedriver_path=r"D:\Python\chromedriver.exe"
#创建FChrome WebDriver的实例
driver = webdriver.Chrome(chromedriver_path)
driver.maximize_window()
#打开网页
driver.get("https://www.baidu.com/")
#鼠标
mouse=ActionChains(driver)
#键盘
keyboard=ActionChains(driver)

鼠标左键点击

#鼠标左键点击当前停留的位置
mouse.click().perform()
#鼠标左键点击指定的元素对象
mouse.click(driver.find_element_by_link_text("新闻")).perform()

鼠标右键点击

#鼠标右键点击当前停留的位置
mouse.contextClick().perform()
#鼠标右键点击指定的元素对象
mouse.context_click(driver.find_element_by_link_text("新闻")).perform()

鼠标双击

#鼠标双击当前停留的位置
mouse.double_click().perform()
#鼠标双击指定的元素对象
mouse.double_click(driver.find_element_by_id('kw')).perform()

鼠标拖拽

#将 source 元素拖放到 target 元素的位置
mouse.drag_and_drop(source,target).perform()
#将 source 元素拖放到 (xOffset, yOffset) 位置
mouse.drag_and_drop_by_offset(source,xOffset,yOffset).perform()

鼠标移动

#将鼠标移到 source 元素中点
mouse.move_to_element(source).perform()
#鼠标从当前位置移动到某个坐标
mouse.move_by_offset(xOffset, yOffset).perform()
#移动到距source元素(左上角坐标)多少距离的位置
mouse.move_to_element_with_offset(source,xoffset, yoffset).perform()

鼠标释放

#释放鼠标
mouse.release()

一般只使用移动的事件,不点击的情况下鼠标事件可以不释放

模拟键盘

key_down()按下键盘的某个键
key_up()松开某个键
对于 key_down()方法的调用,如果没有显示的调用 key_up() 来释放的话,这个按键将一直保持按住状态

# 普通键盘模拟
#Ctrl+a
keyboard.key_down(Keys.LEFT_CONTROL).key_down('a').key_up(Keys.LEFT_CONTROL).perform()
#Ctrl+a
keyboard.key_down(Keys.LEFT_CONTROL).send_keys('a').key_up(Keys.LEFT_CONTROL).perform()
#Ctrl+a
keyboard.key_down(Keys.LEFT_CONTROL).send_keys('a').perform()
keyboard.key_up(Keys.LEFT_CONTROL).perform()