(5)selenium基础——鼠标操作

本文详细介绍了如何使用Selenium进行各种鼠标操作,包括点击、右键点击、拖拽、双击等。通过ActionChains模块,可以实现如鼠标移动、点按、键盘操作等低级交互,为自动化测试提供了强大的工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鼠标点击:

driver.get_element_by_id("id").click()

鼠标右键:

from selenium webdriver.common.action_chains import ActionChains
testObj = driver.find_elemnet_by_id("id")
ActionChains(driver).move_to_element(testObj).context_click().perform()

鼠标拖拽:

#拖拽  drag_and_drop()
name = driver.get_element_by_name("name")
password = driver.get_element_by_name("pwd")
ActionChains(driver).double_click(name).perform()
ActionChains(driver).drag_and_drop(name,password).perform()

鼠标双击:

da=driver.get_element_by_name("name")
ActionChainss(driver).double_click(da).perform()

###

(1)ActionChains:

  • ActionChains是自动执行低级交互的一种方式,例如:鼠标移动,鼠标点按,键盘操作,文本操作等。
  • 需要使用的时候需要引包定义:
    • 引包:from selenium.webdriver.common.action_chains import ActionChains
    • 定义: actions=ActionChains(driver)

(2)perform():表示执行ActionChains中所定义的动作。

 

 

 

### Selenium 鼠标操作使用方法 在 WebDriver 中,`ActionChains` 类用于处理鼠标和键盘的操作。该类提供了多种方法来执行复杂的用户交互动作,如点击、右击、双击、悬停以及拖拽等[^1]。 #### 创建 `ActionChains` 对象 为了能够调用 `ActionChains` 提供的各种功能,首先需要创建一个它的实例,并传入浏览器驱动作为参数: ```python from selenium.webdriver.common.action_chains import ActionChains actions = ActionChains(driver) ``` 这里的 `driver` 是已经初始化好的 Web 浏览器对象,比如 Chrome 或 Firefox 的 WebDriver 实例[^3]。 #### 执行具体操作 下面是一些常用的鼠标操作及其对应的 Python 代码实现方式: - **移动到指定元素上** 当想要让光标停留在某个特定网页组件上方时,可利用 `move_to_element()` 方法完成此目的: ```python element = driver.find_element_by_id('some-id') actions.move_to_element(element).perform() ``` - **单击** 单次按下并松开鼠标的左键可以通过简单的 `click()` 来达成目标;如果要针对某元素做单击,则传递该元素给函数即可: ```python # 点击任意位置 actions.click().perform() # 点击特定元素 target = driver.find_element_by_css_selector('.target-class') actions.click(target).perform() ``` - **右击 (上下文菜单)** 若要触发右键菜单,应该采用 `context_click()` 函数代替普通的 `click()` : ```python context_menu_target = driver.find_element_by_name('file') actions.context_click(context_menu_target).perform() ``` - **双击** 双倍快速地两次点击同一地点可用 `double_click()` 完成: ```python double_click_target = driver.find_element_by_tag_name('button') actions.double_click(double_click_target).perform() ``` - **拖拽** 如果希望模拟将一物从一处拉至另一处的动作,那么就应当运用 `drag_and_drop()` ,它接收两个参数——源节点与目的地节点: ```python source_item = driver.find_element_by_class_name('draggable-item') destination_area = driver.find_element_by_id('drop-zone') actions.drag_and_drop(source_item, destination_area).perform() ``` - **按住不放/释放** 在某些情况下可能还需要保持按钮被压下的状态一段时间后再放开,在这种场景下就可以分别借助于 `click_and_hold()` 和 `release()` 这一对组合拳来进行控制[^5]: ```python draggable_object = driver.find_element_by_xpath('//div[@class="handle"]') drop_zone = driver.find_element_by_xpath('//section[@id="container"]') actions.click_and_hold(draggable_object)\ .move_to_element(drop_zone)\ .release()\ .perform() ``` 以上就是一些基本的 Selenium 鼠标操作介绍及其实现的例子。值得注意的是所有的链式调用最终都需要通过 `.perform()` 方法提交整个序列中的所有指令以便它们得以被执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值