【发布时间】:2016-06-05 02:14:08
【问题描述】:
你们中的一些人可能知道可以要求用户选择文件,甚至无需在 DOM 中放置 <input type=file">。对于大多数浏览器来说,它似乎工作正常,只要从用户触发的点击事件处理程序内部调用此代码。
所以,基本上我使用这个函数来获得文件的 ES6 承诺。
function askForFile() {
var $input = $("<input type='file'/>");
var promise = new Promise(function(resolve, reject) {
$input.change(e => {
resolve(e.target.files[0]);
});
});
$input.click();
return promise;
};
它工作得很好,但有人可以告诉我如何用 Selenium 测试它吗?
我见过一些 Selenium snippets 允许用一些文件填充 DOM 输入:
// find the input element
WebElement elem = driver.findElement(By.xpath("//input[@type='file']"));
// 'type' the file location to it as it were a usual <input type='text' /> element
elem.sendKeys("C://path/To/File.jpg");
但是我的输入不在 DOM 中,所以我似乎不能使用这个技巧。有什么方法可以用 Selenium 测试我的代码吗?
谁能告诉我是否有另一种可测试的方式来向用户询问文件而不向 DOM 中添加无用的输入?
【问题讨论】:
标签: javascript html selenium dom selenium-webdriver