selenium鼠标移动、拖拽、双击、长按等操作

这篇博客详细介绍了如何使用selenium的ActionChains类进行鼠标操作,包括移动、拖拽、双击和长按等。通过实例展示了各种方法的用法,如move_to_element、double_click、context_click等,帮助读者掌握在自动化测试中实现更复杂的交互操作。

 selenium鼠标操作靠的是ActionChains(行为链)类,前面的文章我们已经介绍过,详情可以看ActionChains类,selenium的鼠标操作就不一一举例了,本节把鼠标移动、拖拽、双击、长按常见操作罗列下。会使用一种方法自然也会用多种方法!(selenium视觉上看不出鼠标在移动,你可以用右键点击来证实下确实移动了,案例鼠标滚动移动网页下拉

1、move_to_element(to_element)鼠标移动到指定元素

from selenium import webdriver
from selenium.webdriver import ActionChains    
element = driver.find_element_by_id('xxx')
ActionChains(driver).move_to_element(element).perform()

 

2、move_to_element_with_offset(to_element, xoffset, yoffset)

鼠标往右上方横向纵向各移动100

element = driver.find_element_by_id('xxx')
ActionChains(driver).move_to_element_with_offset(element, 100, 100).perform()

 

3、double_click(on_element=None)

双击元素,如果没有指定元素则在当前鼠标位置双击

element = driver.find_element_by_id('xxx')
ActionChains(driver).double_click(element).perform()


4、context_click(on_element=None)

在元素上点击鼠标右键,如果没有指定元素则在当前鼠标位置单击右键

element = driver.find_element_by_id('xxx')
ActionChains(driver).context_click(element).perform()

 

5、click_and_hold(on_element=None)

鼠标左键按下不松,如果没有指定元素则在当前鼠标位置

element = driver.find_element_by_id('xxx')
ActionChains(driver).click_and_hold(element).perform()

 

6、drag_and_drop(source, target)

按住 element1 元素,拖动到 element2 元素。

element1 = driver.find_element_by_id('source')     
element2 = driver.find_element_by_id('target')
ActionChains(driver).drag_and_drop(element1, element2).perform()

 

7、drag_and_drop_by_offset(source, xoffset, yoffset)

向左上角横向纵向移动100。

element = driver.find_element_by_id('source')
ActionChains(driver).drag_and_drop_by_offset(element, -100, -100).perform()

 

8、dey_down(value, element=None)

标按下某个键不释放

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

 

9、key_up(value, element=None)

松开下某个键

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

 

### 使用 Selenium 进行鼠标双击操作 通过 `ActionChains` 类可以实现鼠标的复杂交互行为,其中包括双击操作。以下是具体的操作方法以及示例代码: #### 方法说明 在 Selenium 中,可以通过调用 `double_click()` 方法来模拟鼠标双击动作。此方法属于 `ActionChains` 类的一部分,因此需要先实例化该类的对象。 #### 示例代码 以下是一个完整的 Python 脚本,展示如何使用 Selenium 和 `ActionChains` 对网页中的某个元素进行双击操作: ```python from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By # 初始化 WebDriver driver = webdriver.Chrome() driver.implicitly_wait(5) try: # 打开目标网站 driver.get('https://example.com') # 定位要双击的元素 (假设这里定位的是一个按钮) target_element = driver.find_element(By.ID, 'targetElementId') # 创建 ActionChains 实例并执行双击操作 actions = ActionChains(driver) actions.double_click(target_element).perform() finally: # 关闭浏览器窗口 driver.quit() ``` 上述代码中,`actions.double_click(target_element)` 是核心部分,用于指定对特定元素执行双击操作[^1]。 #### 注意事项 - 双击操作通常适用于某些支持此类交互的 HTML 元素(如 `<button>` 或其他可点击区域)。如果目标页面上的元素不响应双击,则可能需要进一步确认其功能逻辑。 - 如果遇到动态加载的内容或者复杂的 JavaScript 控制情况,可以直接尝试注入自定义脚本来完成类似效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圈点Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值