python - 如何使用 Python Selenium 拖放文件?

标签 python selenium testing drag-and-drop

我想检查我的测试(selenium/python)在网站上创建一个新图像。我需要为它加载图片。当我可以选择使用放置或文件资源管理器字段时,我该如何执行此操作。据我所知,我无法使用文件资源管理器,因为没有 ID 或名称。如何使用拖放方式?

我有这段代码,但它不起作用:

element = driver.find_elements_by_id ("file_upload")
element.send_keys ( "C: \\ Users \\ Desktop \\ Robert \\ Construct_ImminentCollision-C.jpg")
target = driver.find_element_by_id ("add-new-pano")

action_chains = ActionChains (driver)
action_chains.drag_and_drop (element, target) .perform ()

"add-new-pano"是放置字段 id。

最佳答案

虽然我最近没有使用过 selenium,但如果您在静态工作区中工作,您可以控制大部分内容,我建议您使用 PyAutoGUI .它不是动态解决方案,但确实包含 a left mouse emulation feature for drag and drop .

在提供的示例中,鼠标从 100,100 位置向屏幕底部移动 100 像素:

>>> pyautogui.moveTo(100,100)    #starting mouse location of 100,100
>>> pyautogui.dragTo(100,200, button='left')     # drag mouse to X of 100, Y of 200 while holding down left mouse button

如果您知道分辨率、文件资源管理器的位置等每次都可以在受控环境中完成,则可以为您的应用程序设置一个临时解决方案。

我在 Windows 环境中遇到了问题。之前由于意外的更新屏幕。深思......

关于python - 如何使用 Python Selenium 拖放文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281999/

相关文章:

python - Tp-Link M7350 4G LTE 路由器 - 使用带有 Raspberry Pi 的 python 脚本发送短信

python - 使用 Django Rest Frame 序列化非 django 模型

java - 如何在 Selenium WebDriver 中动态更改我的 xpath?

python - 来自 subprocess.Popen.communicate() 与 stdin 的损坏管道

python - 如何在 VIM 中折叠 python 源代码中的长文档字符串?

node.js - 从GitHub安装时不显示Appium版本,但通过nodejs cmd安装时显示。我们应该以两种方式安装吗?

python - 在 python selenium phantomjs 中单击可靠的随机链接

php - 为具有一定程度随机化的方法编写单元测试

iOS SDK - 链接静态库与静态库

java - JMockit - 两个相同类型的模拟实例