[转]selenium——鼠标操作ActionChains:点击、滑动、拖动

from selenium.webdriver import ActionChains


1、鼠标点击

click:鼠标左击
double_click:鼠标双击
context_click:鼠标右击

复制代码
 
btn = driver.find_element_by_id('su')
# 第一步:创建一个鼠标操作的对象
action = ActionChains(driver)
# 第二步:进行点击动作(事实上不会进行操作,只是添加一个点击的动作)
action.click(btn)
# 第三步:执行动作
action.perform()
 
复制代码

 

2、鼠标移动

复制代码
 
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.implicitly_wait(5)

# 定位设置元素
set_ele = driver.find_element_by_xpath("//div[@id='u1']//a[text()='设置']")
# 第一步:创建一个鼠标操作的对象
action = ActionChains(driver)
# 第二步:进行移动
action.move_to_element(set_ele)
# 第三步:执行动作
action.perform()

# 三行代码写成一行:支持链式调用
ActionChains(driver).move_to_element(set_ele).perform()

# 等待高级设置可点击
WebDriverWait(driver,5,0.2).until(
    EC.element_to_be_clickable((By.XPATH,"//a[text()='高级搜索']"))
).click()
 
复制代码

 

3、鼠标滑动

复制代码
 
# 选择拖动滑块的节点
sli_ele = driver.find_element_by_id('tcaptcha_drag_thumb')
# ------------鼠标滑动操作------------
action = ActionChains(driver)
# 第一步:在滑块处按住鼠标左键
action.click_and_hold(sli_ele)
# 第二步:相对鼠标当前位置进行移动
action.move_by_offset(100,0)
# 第三步:释放鼠标
action.release()
# 执行动作
action.perform()
 
复制代码

 

4、鼠标在一个元素上拖动到另一个元素

复制代码
 
s = WebDriverWait(driver, 30, 0.5).until(
    EC.visibility_of_element_located((By.ID, 'draggable'))
)
t = WebDriverWait(driver, 30, 0.5).until(
    EC.visibility_of_element_located((By.ID, 'droppable'))
)
# ------------鼠标滑动操作------------
action = ActionChains(driver)
# 第一步:拖动元素
action.drag_and_drop(s, t)
# 执行动作
action.perform()
复制代码
posted @   寂寞圣贤  阅读(671)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示