在我试图测试的网页上,我们实现了拖放文件上传。我已经查看了selenium action chain API的拖放API。它看起来像只支持在页面上的2个元素之间拖放。如何模拟从文件管理器拖动?selenium webdriver:通过拖放上传文件
0
A
回答
0
使用AWT Robot类执行拖放:
Robot robot=new Robot();
// drag
robot.mouseMove(x1, y1);
robot.mousePress(InputEvent.BUTTON1_MASK);
// drop
robot.mouseMove(x2, y2);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
0
的AutoIt有DLL包装。我直接从C#/ Selenium代码使用它。
2
要使用硒执行HTML5文件降:
static final String JS_DROP_FILE =
"var tgt=arguments[0],e=document.createElement('input');e.type='" +
"file';e.addEventListener('change',function(event){var dataTrans" +
"fer={dropEffect:'',effectAllowed:'all',files:e.files,items:{},t" +
"ypes:[],setData:function(format,data){},getData:function(format" +
"){}};var emit=function(event,target){var evt=document.createEve" +
"nt('Event');evt.initEvent(event,true,false);evt.dataTransfer=da" +
"taTransfer;target.dispatchEvent(evt);};emit('dragenter',tgt);em" +
"it('dragover',tgt);emit('drop',tgt);document.body.removeChild(e" +
");},false);document.body.appendChild(e);return e;";
WebDriver driver = new FirefoxDriver();
driver.get("http://html5demos.com/file-api");
WebElement drop_area = driver.findElement(By.id("holder"));
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(JS_DROP_FILE, new Object[]{drop_area})
.sendKeys("C:\\image.png");
+0
请问,您能告诉我们您的解决方案的来源是什么? –
+0
@Andrea Borgogelli Avveduti,我写了解决方案。看看这里的api:https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API –
相关问题
- 1. Python Selenium WebDriver拖放
- 2. 通过拖放文件上传
- 3. selenium webdriver上传文件
- 4. Selenium Webdriver - 上传Audido文件
- 5. ReactJS dropzone通过webdriver上传文件
- 6. selenium webdriver无法拖放fullcalendar事件
- 7. 使用Selenium webdriver从文件系统拖放文件
- 8. HTML 5文件拖放文件上传通过php
- 9. HTML5拖放n拖放文件上传
- 10. selenium webdriver .net chrome上传文件
- 11. 用selenium webdriver上传文件python
- 12. 无法上传selenium webdriver中的文件
- 13. 拖放ajax文件上传
- 14. 拖放文件上传
- 15. Xpages拖放文件上传
- 16. 拖放文件上传
- 17. YI拖放文件上传
- 18. 拖放jQuery文件上传
- 19. html5拖放文件上传
- 20. HTML5拖放使用Selenium Webdriver for Ruby
- 21. Selenium Webdriver拖放不在Chrome中工作
- 22. Selenium webdriver拖放不起作用(java)
- 23. Selenium Webdriver - 拖放不起作用
- 24. 如何通过Chrome扩展模拟文件拖放上传?
- 25. 通过输入WebDriver文件上传后,sendKeys触发上传
- 26. 配置Selenium 2(WebDriver),使用IE并使用WebDriver上传文件
- 27. 在RichFaces上拖放文件上传
- 28. 拖放文件上传插件.net?
- 29. 在ASP.NET文件上传控件中使用Selenium Webdriver C#自动上传文件
- 30. jquery文件上传:单个文件上传用于拖放
[AutoIt的](https://www.autoitscript.com/site/autoit/)具有窗口GUI交互,尝试在那里。 – Guy
@guy谢谢,但我正在寻找基于硒的编程解决方案。 – lang2