在模拟使用鼠标操作时,我们需要先导入ActionChains类,代码如下:
from selenium.webdriver.common.action_chainsimport ActionChains
ActionChains用于生成用户的行为,可以模拟鼠标操作,如单击、双击、单击鼠标右键、拖曳等。所有的行为都存储在ActionChains对象中,再通过perform()方法执行所有Action-Chains对象中存储的行为。perform()也是ActionChains类提供的方法,通常与ActionChains()配合使用。ActionChains方法的说明如下图所示:
说明右击操作
context_click()方法是先定位一个元素,然后对定位的元素执行右击。首先我们要先定位一个元素,其次执行需要的操作,最后需要提交操作。以Bing首页为例,在搜索框元素区域进行右击操作,代码如下:
from selenium import webdriver
import time
from selenium.webdriver.common.action_chainsimport ActionChains
driver = webdriver.Chrome()
driver.get("https://cn.bing.com/")
right = driver.find_element_by_xpath("//*[@id='sb_form_go']")
ActionChains(driver).context_click(right).perform()
time.sleep(2)
driver.quit()
双击操作
double_click()方法用于对元素进行操作。以Bing首页上的搜索按钮为例,对其发起双击操作,代码如下:
#定位要双击的元素
double = driver.find_element_by_xpath("//input[@id='sb_form_go']")
# 对定位的元素执行鼠标双击操作
ActionChains(driver).double_click(double).perform()
拖动操作
drag_and_drop()方法实现元素拖动的功能,即通过鼠标拖曳某个元素到指定的元素后再松开。以Bing首页为例,拖动“学术”链接元素到搜索框元素的位置
# 定位到“学术”元素的原位置
element = driver.find_element_by_xpath("//*[@id='scpl2']")
# 定位到元素要移动到的目标位置,目标是搜索框
target = driver.find_element_by_xpath("//input[@id='sb_form_q']")
#执行元素的移动操作
ActionChains(driver).drag_and_drop(element, target).perform()
鼠标指针悬停操作
通过move_to_element()方法,可以将鼠标指针悬停在一个元素上,从而查看该元素的一些提示信息。例如,将鼠标指针悬停在Bing首页的搜素框元素上,实现代码如下:
# 搜索框
element = driver.find_element_by_xpath("//input[@id='sb_form_q']")
# 执行鼠标指针悬停操作
ActionChains(driver).move_to_element(element).perform()
网友评论