WebDriver提供了多种关于鼠标的操作方法,如模拟鼠标指针悬停、右击和双击等。本节进行鼠标操作实战。
本案例中使用link_text定位到百度首页的“设置”按钮。首先导入ActionChains类,再使用move_to_element()方法将鼠标指针悬停到某个元素上面。ActionChains()方法需要驱动传入才生效,perform()方法用于执行所有动作,示例如下:
from selenium import webdriver from time import sleep # 导入ActionChains类 from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Chrome() dr.get("https://www.baidu.com") setting = dr.find_element_by_link_text("设置") ActionChains(dr).move_to_element(setting).perform() sleep(1) dr.find_element_by_link_text("搜索设置").click() sleep(5)
鼠标指针悬停到“设置”按钮后,弹出列表框,单击“搜索设置”选项,如图2.21所示。
图2.21 鼠标指针悬停案例界面
本案例中,首先将鼠标指针定位到要右击的元素上,然后通过context_click()方法执行鼠标右键操作,示例如下:
# 导入ActionChains类 from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Chrome() dr.get("https://www.baidu.com") sleep(3) # 定位“百度一下”按钮元素 context = dr.find_element_by_id('su') # 模拟鼠标右键操作 ActionChains(dr).context_click(context).perform() sleep(5)
结果如图2.22所示。
图2.22 鼠标右键案例界面
本案例中,首先将鼠标指针定位到要双击的元素上,然后通过double_click()方法模拟鼠标双击操作,示例如下:
from time import sleep from selenium.webdriver.common.action_chains import ActionChains # 导入ActionChains类 from selenium import webdriver dr = webdriver.Chrome() dr.get("https://www.baidu.com") sleep(3) dr.find_element_by_id('kw').send_keys('双击一下') # 定位“百度一下”按钮元素 double = dr.find_element_by_id('su') # 模拟鼠标双击操作 ActionChains(dr).double_click(double).perform() sleep(5)