我想检查我的测试(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/