如何在 Selenium 中使用 Python 对元素执行右键单击操作?
selenium web driverautomation testingsoftware testing
我们可以借助 Action Chains 类在 Selenium 中对元素执行右键单击操作。这些类通常用于自动化交互,例如上下文菜单点击、鼠标按钮操作、按键和鼠标移动。
这些类型的操作主要常见于复杂的场景,例如拖放和悬停在页面上的元素上。Action Chains 类的方法被高级脚本所利用。我们可以借助 Selenium 中的 Action Chains 来操作 DOM。
Action Chain 对象以队列的形式实现 ActionChains,然后执行 perform() 方法。调用 perform() 方法后,动作链上的所有操作都将执行。
创建动作链对象的方法如下:
首先,我们需要导入动作链类,然后将驱动程序作为参数传递给它。
现在,所有动作链的操作都可以借助此对象完成。
语法
创建 Action Chains 对象的语法 -
from selenium import webdriver
# 导入 Action Chains from selenium.webdriver import ActionChains # 创建 webdriver 对象 driver = webdriver.Firefox() # 创建 Action Chain 对象 action = ActionChains(driver)
创建 Action Chains 对象后,我们可以像排队一样逐个执行多个操作。
context_click() - 此方法对页面上的元素执行右键单击操作。
语法
context_click(args)
其中 args 是要右键单击的元素。如果省略,则单击当前鼠标位置。
#元素
source = driver.find_element_by_id("name")
#操作链对象
action = ActionChains(driver)
#右键单击操作
action.context_click(source)
示例
右键单击操作的代码实现。
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
#浏览器暴露可执行文件
#通过 Selenium 测试,我们将调用该可执行文件,然后
#调用实际的浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
#最大化浏览器窗口
driver.maximize_window()
#使用 get 方法打开 URL
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
#刷新浏览器
driver.refresh()
#识别源元素
source= driver.find_element_by_xpath("//*[text()='Company']");
#创建操作链对象
action = ActionChains(driver)
#右键单击并执行
action.context_click(source).perform()
#关闭浏览器
driver.close()

