Python+Selenium练习篇3-ActionChains-模拟鼠标右键点击

本文介绍如何通过ActionChains模块中的driag_and_drop方法模拟鼠标右键点击
实现鼠标右键点击元素loc

代码如下:

import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.maximize_window()	#窗口最大化
driver.implicitly_wait(10)	#隐式等待10s查询元素
url = 'https://www.baidu.com'
driver.get(url)

#定位
loc = driver.find_element_by_xpath("//*[@id='u1']/a[1]")

actionChains = ActionChains(driver)
actionChains.context_click(loc)	#context_click()方法,鼠标右键点击
#actionChains.context_click(el).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER)	#使用Kes方法点击选项跳转

actionChains.perform()		#执行

time.sleep(2)	#等待2s,方便观看
driver.quit()	#关闭浏览器
Python,结合Selenium库操作Shadow DOM下的元素(如textarea)需要一些额外的步骤,因为Selenium默认并不直接支持Shadow DOM。以下是使用`selenium.webdriver.support.selective_search.SelectorEngine`和`WebElement.shadowRoot`来给`<textarea>`赋值的一个示例: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains # 创建一个的WebDriver实例,这里假设已经通过ChromeDriver连接到浏览器 driver = webdriver.Chrome() # 让浏览器打开某个支持Shadow DOM的网 url = "https://example.com" # 替换为你实际的目标面 driver.get(url) # 使用SelectorEngine选择到 Shadow DOM 下的 textarea 元素 selector = '#your-shadow-root-selector textarea' # 根据实际情况替换选择器 wait = WebDriverWait(driver, 10) # 设置超时时间 element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, selector))) # 获取textarea的shadowRoot对象 shadow_root = element.shadowRoot # 现在可以对textarea元素进行操作了,例如赋值 value_to_set = "Your text here" text_area_element = shadow_root.find_element_by_tag_name('textarea') ActionChains(driver).move_to_element(text_area_element).click().send_keys(value_to_set).perform() # 别忘了保存或提交表单,如果这是一个表单元素 submit_button = shadow_root.find_element_by_css_selector('.submit-button') # 这取决于按钮CSS选择器 submit_button.click() # 关闭浏览器 driver.quit() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值