Python+selenium 自动化高级应用篇:借助pyautogui实现web前端带轨迹拖拽功能,解决ActionChains拖拽失效问题

简介: Python+selenium 自动化高级应用篇:借助pyautogui实现web前端带轨迹拖拽功能,解决ActionChains拖拽失效问题

   

有一些 web 前端的交互,必须有鼠标轨迹才能成功的实现拖拽功能。

selenium 自带的 ActionChains 方法,是一瞬间从 A 点到 B 点的。

解决思路:

利用元素返回的相对浏览器的位置的方法, location[] 可以返回元素的坐标,再加上边框的位移量,确定好元素相对于电脑的位置,这个时候用浏览器最大化方法很有必要 driver.maximize_window(),可以固定浏览器相对于电脑位置的偏移量,这个偏移量需要大家自己来找,再利用 pyautogui 模拟鼠标操作完美的解决问题,鼠标操作实现电脑坐标点到点的轨迹拖动,后面的 duration 可以设置拖动时长。

# 2019.10.10
# 小蓝枣
# 实现带轨迹拖拽功能
# -*- coding: UTF8 -*-
from selenium import webdriver
import os
import time
import pyautogui
driver = webdriver.Chrome()  # 打开谷歌浏览器
driver.maximize_window()     # 最大化浏览器
driver.implicitly_wait(10) # 设置隐式时间等待
# 拖拽应用
def drag_app(s):
  # 定位起始元素
    start = driver.find_element_by_xpath('//*[@fieldid="left_area"]//*[@fieldid="搜索结果_group"]//*[@fieldid="'+s+'"]//*[@class="list-item-content"]')
    # 让鼠标移动到起点元素上
    pyautogui.moveTo(start.location['x']+20,start.location['y']+125)
    # 定位要拖拽到的位置元素
    end = driver.find_element_by_xpath('//*[@fieldid="right_area"]//*[@fieldid="分组_group"]//*[@fieldid="container_area"]')
    # 实现拖拽功能
    pyautogui.dragTo(end.location['x']+20,end.location['y']+155,duration=1)
    time.sleep(2)

效果如演示:

1.gif

喜欢的点个赞❤吧!


目录
打赏
0
0
0
0
16
分享
相关文章
Python可视化应用——学生成绩分布柱状图展示
本程序使用Python读取Excel中的学生成绩数据,统计各分数段人数,并通过Matplotlib库绘制柱状图展示成绩分布。同时计算最高分、最低分及平均分,实现成绩可视化分析。
57 0
Python AutoML框架选型攻略:7个工具性能对比与应用指南
本文系统介绍了主流Python AutoML库的技术特点与适用场景,涵盖AutoGluon、PyCaret、TPOT、Auto-sklearn、H2O AutoML及AutoKeras等工具,帮助开发者根据项目需求高效选择自动化机器学习方案。
106 1
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
Python数值方法在工程和科学问题解决中的应用
本文探讨了Python数值方法在工程和科学领域的广泛应用。首先介绍了数值计算的基本概念及Python的优势,如易学易用、丰富的库支持和跨平台性。接着分析了Python在有限元分析、信号处理、优化问题求解和控制系统设计等工程问题中的应用,以及在数据分析、机器学习、模拟建模和深度学习等科学问题中的实践。通过具体案例,展示了Python解决实际问题的能力,最后总结展望了Python在未来工程和科学研究中的发展潜力。
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
19 1
Python时间序列平滑技术完全指南:6种主流方法原理与实战应用
时间序列数据分析中,噪声干扰普遍存在,影响趋势提取。本文系统解析六种常用平滑技术——移动平均、EMA、Savitzky-Golay滤波器、LOESS回归、高斯滤波与卡尔曼滤波,从原理、参数配置、适用场景及优缺点多角度对比,并引入RPR指标量化平滑效果,助力方法选择与优化。
88 0
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级,不升级无法使用,安装python扩展包的时候一直停留在installing
57 4
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
73 7
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
97 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问