我看到很多人在使用Selenium
WebDriver的测试环境中上传文件时遇到问题。我使用了硒WebDriver和Java,并且遇到了同样的问题。我终于找到了解决方案,因此我将其发布在这里,希望对其他人有所帮助。
当我需要在测试中上传文件时,请单击按钮中的Webdriver,然后等待窗口“打开”弹出。然后,我将路径复制到剪贴板中的文件,然后将其粘贴到“打开”窗口中,然后单击“输入”。之所以起作用,是因为当窗口“打开”弹出时,焦点始终位于“打开”按钮中。
您将需要以下类和方法:
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
public static void setClipboardData(String string) {
StringSelection stringSelection = new StringSelection(string);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
}
这就是我在打开“打开”窗口后所做的事情:
setClipboardData("C:\\path to file\\example.jpg");
//native key strokes for CTRL, V and ENTER keys
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
就是这样。它对我有用,我希望对某些人有用。
实际上,也有一种内置的技术。它应该可以在所有浏览器和操作系统中使用。
Selenium 2(WebDriver)Java示例:
// assuming driver is a healthy WebDriver instance
WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/path/to/file.jpg");
这个想法是将文件的绝对路径直接发送到一个元素,您通常会单击该元素以获取模式窗口-即<input type='file' />
element。
问题内容: 我正在使用AngularJS与Web服务进行交互,用于提取公开的各种实体。其中一些实体是图像,因此我需要能够使用“对象” 的动作在同一请求中发送二进制数据和文本字段。 如何在单个请求中使用AngularJS的服务发送数据并将图像上传到宁静的Web服务? 问题答案: 我进行了无数次搜索,尽管可能会错过它,但找不到该问题的解决方案:使用$ resource操作上传文件。 让我们举个例子:R
本文向大家介绍ASP.NET对大文件上传的解决方案,包括了ASP.NET对大文件上传的解决方案的使用技巧和注意事项,需要的朋友参考一下 首先,我们需要下载这个名为 RanUpLoad 的组件。 下载完成之后,两个 dll 文件添加到项目的引用中区,xml 文件也要复制在项目中的 bin 文件夹下,也就是最后三个文件都要存在于 bin 文件夹中。 接着,上传控件还是用 ASP.NET 中自带的 Fi
本文向大家介绍asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型),包括了asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型)的使用技巧和注意事项,需要的朋友参考一下 小编之前也介绍了许多ASP.NET文件上传的解决案例,今天来个asp.net文件上传大集合。 1 使用标准HTML来进行图片上传 前台代码: 后台代码: 2 单文件上传 这是最
本文向大家介绍asp.net上传文件到数据库的解决方案,包括了asp.net上传文件到数据库的解决方案的使用技巧和注意事项,需要的朋友参考一下 现在,我们来看存放文件的数据库表结构,这里,我们给出建立表的标准SQL语句: 以上的语句中,我们看到数据表tblBooksUpload包含五个字段: ·字段DocID是表的关键字段,数据记录编号; ·字段DocTitle是用来简单说明上传文件的,如果上传文
本文向大家介绍form+iframe解决跨域上传文件的方法,包括了form+iframe解决跨域上传文件的方法的使用技巧和注意事项,需要的朋友参考一下 (1) jsp代码: 说明:form中的target指向iframe中的name。这点要注意。 (2) js代码: (3) 后台java代码: //加<textarea>以解决IE下submit后没有执行回调success函数,这个是jquer
本文向大家介绍asp.net批量多选文件上传解决方案,包括了asp.net批量多选文件上传解决方案的使用技巧和注意事项,需要的朋友参考一下 多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的。很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方便,比如flex里内置的FileReferenceList对