").click()-6ren"> ").click()-你们中的一些人可能知道,可以要求用户选择文件,甚至不需要输入 在 DOM 内部。只要从用户触发的单击事件处理程序内部调用此代码,它似乎对于大多数浏览器都可以正常工作。 所以,基本上我使用这个函数来获取-6ren">
gpt4 book ai didi

javascript - 使用 Selenium 测试 $ ("<input type=' file'>").click()

转载 作者:行者123 更新时间:2023-11-28 06:20:34 25 4
gpt4 key购买 nike

你们中的一些人可能知道,可以要求用户选择文件,甚至不需要输入 <input type=file">在 DOM 内部。只要从用户触发的单击事件处理程序内部调用此代码,它似乎对于大多数浏览器都可以正常工作。

所以,基本上我使用这个函数来获取 ES6 promise 的文件。

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 中?

最佳答案

如何使用 Selenium 添加监听器到 onclick

driver.executeScript('
$(function() {
$("input[type=file]").on('click', function(el) {
$(el).val('path/to/file');
});
})
')

抱歉,如果它是垃圾,我目前无法测试它,所以请考虑它伪代码:)

关于javascript - 使用 Selenium 测试 $ ("&lt;input type=' file'>").click(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35574204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com