gpt4 book ai didi

带有隐藏输入的 Selenium 文件选择器 [type=file]

转载 作者:行者123 更新时间:2023-12-02 01:37:13 26 4
gpt4 key购买 nike

我上传了一个图像文件,想用 Selenium (java) 对其进行测试。用户有两个选择。他可以通过拖放从他的本地机器推送图像,或者他可以单击“浏览...”按钮。然后出现浏览器指定的文件选择器。

Selenium 中,我尝试了不同的东西。据我所知,Selenium 不提供浏览器外的操作。所以测试拖放功能不是一个可能的解决方案。

所以我尝试单击“浏览”按钮并使用浏览器指定的文件选择器。我找到了一个 YouTube video有人在此对话框中成功选择文件的位置。他上了机器人课,在键盘上做了一些事情。

getDriver().findElement(By.id(BROWSE_BUTTON)).click();

Thread.sleep(5000);

StringSelection stringSelection = new StringSelection("C:\\A.JPG");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
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);

当我调试这些行时,测试在第 1 行的 click() 方法之后挂起。我使用 Firefox 31.1

有什么想法吗?也许有一些选择?在 input[type='file'] 中写入文件路径是别无选择的,因为此输入是隐藏的。

最佳答案

隐藏文件输入在 FirefoxChrome 中不是问题。而且,v2.45.0.6 确保 IE 也能处理隐藏文件输入。使用 input[type='file'] 的简单 sendkeys() 应该适合您。参见 changelog

编辑

对于 FF,这也可能是一个兼容性问题。但是,Selenium 尚不支持最新版本的 FF。参见 this

第二次编辑

Selenium 2.46 已经发布,IEDriver 现在应该可以使用隐藏文件输入标签了。

关于带有隐藏输入的 Selenium 文件选择器 [type=file],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30574916/

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