鼠标操作

在模拟使用鼠标操作时,我们需要先导入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()

你可能感兴趣的:(鼠标操作)