12、技巧之五:菜单必杀技!从主菜单移到二级子菜单再点击鼠标 【Selenium+Python3网页自动化总结】

ActionChains 是一种用于自动化低级交互的方法,包括鼠标移动、鼠标按钮操作、按键操作和上下文菜单交互。

这对于执行更复杂的操作,如悬停和拖放,非常有用。

在Selenium中,ActionChains 类允许你将一系列的动作链接在一起,以执行复杂的用户交互。这对于模拟用户在网页上的实际操作非常有用,特别是那些涉及到鼠标和键盘的操作。

以下是一个简单的例子,演示了如何使用 ActionChains 来执行悬停和拖放操作:

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains


# 创建一个 WebDriver 实例

driver = webdriver.Chrome()

# 打开一个网页

driver.get("https://example.com")

# 定位到需要悬停的元素

hover_element = driver.find_element("xpath", "//your/xpath")


# 创建 ActionChains 实例

actions = ActionChains(driver)

# 执行悬停动作

actions.move_to_element(hover_element).perform()

# 定位到需要拖放的元素

drag_element = driver.find_element("xpath", "//your/drag/xpath")

# 执行拖放动作

actions.drag_and_drop(hover_element, drag_element).perform()

# 关闭浏览器

driver.quit()

在这个例子中,我们首先创建一个 ActionChains 实例,然后使用 move_to_element 方法执行悬停动作,接着使用 drag_and_drop 方法执行拖放动作。最后,通过 perform 方法执行创建的所有动作。这样,可以模拟用户在网页上的鼠标悬停和拖放操作。

以下例子找子菜单的时候,可能二级菜单还没出来导致找不到元素出错,最后第二句可以改成这样:

actions.click(driver.find_element(By.CSS_SELECTOR, "#sub2-menu1"))

import selenium.webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains

driver = webdriver.Firefox(executable_path=driver_path)
#点击主菜单,弹出一级子菜单
driver.find_element(By.CSS_SELECTOR, "#main-menu").click()

#找到一级子菜单和二级子菜单
menu = driver.find_element(By.CSS_SELECTOR, "#sub1-menu")
submenu = driver.find_element(By.CSS_SELECTOR, "#sub2-menu1")

actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(submenu)
actions.perform()

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值