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

喜欢的点个赞❤吧!


目录
相关文章
|
2月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
41 4
|
30天前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
167 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
1月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
112 31
Selenium IDE:Web自动化测试的得力助手
|
5天前
|
JSON 安全 中间件
Python Web 框架 FastAPI
FastAPI 是一个现代的 Python Web 框架,专为快速构建 API 和在线应用而设计。它凭借速度、简单性和开发人员友好的特性迅速走红。FastAPI 支持自动文档生成、类型提示、数据验证、异步操作和依赖注入等功能,极大提升了开发效率并减少了错误。安装简单,使用 pip 安装 FastAPI 和 uvicorn 即可开始开发。其优点包括高性能、自动数据验证和身份验证支持,但也存在学习曲线和社区资源相对较少的缺点。
34 15
|
1月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
209 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
55 6
|
2月前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
72 1
|
2月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
148 3
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
41 4