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

2024-05-05

我有一个图像文件上传并想测试它硒(java)。用户有两个选择。他可以通过从本地计算机拖放来推送图像,也可以单击“浏览...”按钮。然后出现浏览器指定的文件选择器。

In Selenium我尝试了不同的事情。据我所知Selenium不提供浏览器之外的操作。因此测试拖放功能并不是一个可能的解决方案。

因此,我尝试单击“浏览”按钮并使用浏览器指定的文件选择器。我找到了一个Youtube 视频 https://www.youtube.com/watch?v=NXhi5QwY4mk有人在此对话框中成功选择文件。他参加机器人课程是为了在键盘上做一些事情。

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() 方法之后挂起。 我用火狐31.1.

有任何想法吗?也许还有一些替代方案? 将文件路径写入input[type='file']没有其他选择,因为此输入是隐藏的。


隐藏文件输入不是问题Firefox or Chrome. And, v2.45.0.6确保IE也适用于隐藏文件输入。很简单sendkeys() using input[type='file']应该适合你。看变更日志 https://raw.githubusercontent.com/SeleniumHQ/selenium/master/cpp/iedriverserver/CHANGELOG

EDIT

对于 FF 来说,这也可能是一个兼容性问题。但是,最新版本的 FF 尚不支持Selenium. See this https://stackoverflow.com/questions/30383949/upload-picture-element-is-not-currently-visible/30384313#30384313

2nd Edit

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • TextView ClickableSpan 按下状态的样式[重复]

    这个问题在这里已经有答案了 我对 ClickableSpan 进行子类化 以自定义 TextView 中链接的文本样式 private static class LinkSpan extends ClickableSpan Override
  • .NET 配置(app.config/web.config/settings.settings)

    我有一个 NET 应用程序 它具有用于调试和发布版本的不同配置文件 例如 调试 app config 文件指向开发SQL服务器 http en wikipedia org wiki Microsoft SQL Server它启用了调试并且发
  • 使用PHP检测IE浏览器版本

    我正在使用 SERVER HTTP USER AGENT 来检测用户的浏览器 当我在 IE8 上的本地主机上运行 var dump 时 它返回 兼容的 微星8 0 但是当我将其上传到我的主机 godaddy 时 我得到 兼容的 MSIE 7
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • 在 JavaScript 中将整数数组转换为字符串数组

    我有一个如下所示的数组 var sphValues 1 2 3 4 5 然后我需要转换上面的数组 如下所示 var sphValues 1 2 3 4 5 我怎样才能转换 我用它来自动完成 您可以使用map https developer
  • 引用计数指针的STL类?

    这应该是微不足道的 但我似乎找不到它 除非不存在这样的类 智能指针的 STL 类 或类集 是什么 UPDATE 感谢您的回复 我必须说我很惊讶没有标准实施 我最终使用了这个 http archive gamedev net referenc
  • 在 Spring Boot 中为自定义控制器方法启用 HAL 序列化

    我正在尝试使用 spring boot starter data rest 通过 Spring Boot 构建 RESTful API 有一些实体 账户 交易 类别和用户 只是常见的东西 当我检索对象时http localhost 8080
  • 如何解析代码(Python)?

    我需要解析一些特殊的数据结构 它们采用某种类似 C 的格式 大致如下所示 Group GroupName C Style comment Group AnotherGroupName Entry some variables 0 3 141
  • 是否可以列出派生 Generic 的记录数据类型中字段的名称和类型?

    我知道对于派生 Data Data 的数据类型 constrFields http hackage haskell org package base 4 7 0 2 docs Data Data html v constrFields给出字
  • Android - 使用 HttpURLConnection 来 POST XML 数据

    我遇到了一些死胡同 需要一些帮助 请 我对 Android 开发 以及一般编码 非常陌生 基本上我需要使用 HttpURLConnection 将 XML 数据发布到 URL 但无法让它工作 我的应用程序从 GET 请求读取并传递 XML
  • 用于 JAWS 开发的文本控制台?

    我正在开发一个网络应用程序 我希望通过屏幕阅读器使其易于使用 在 JAWS 中测试东西非常耗时 是否可以让 JAWS 显示文本而不是阅读它 我实际上不想听到开发过程中的内容 我只是想看看 JAWS 会读什么 据我所知 大白鲨 没有语音查看器
  • 使用两个图像的平方差作为张量流中的损失函数

    我正在尝试使用两个图像之间的 SSD 作为我的网络的损失函数 h fc2 is my output layer y is my label image ssd tf reduce sum tf square y h fc2 train st
  • 让 GHC 生成“带进位加法 (ADC)”指令

    下面的代码将表示 192 位数字的两个未装箱字三元组添加到新的未装箱字三元组中 并且还返回任何溢出 LANGUAGE MagicHash LANGUAGE UnboxedTuples import GHC Prim plusWord2 Wo
  • Spark Worker 在 Heartbeater 中与 Spark Driver 通信的超时时间为 3600 秒

    我没有配置任何超时值 而是使用默认设置 在哪里配置3600秒超时 怎么解决呢 错误信息 18 01 10 13 51 44 WARN Executor Issue communicating with driver in heartbeat
  • 添加一个favicon到redmine主题

    redmine 使用位于的 favicon usr share redmine public favicon ico 我发现很多代码片段使用cd usr share redmine grep HR favicon app app helpe
  • 单击时获取按钮值并回显它

    我是 php 的初学者 我的第一个任务是构建一个计算器 我在这里询问如何从按钮获取值并在同一页面上回显它 我正在尝试使用 isset 通过方法发布 但能够在同一页面上显示任何值
  • 在 C 中初始化结构体的静态数组

    我正在用 C 实现一个纸牌游戏 纸牌有很多种类型 每种纸牌都有大量信息 包括一些需要单独编写与其关联的脚本的操作 给定这样的结构 并且我不确定我的语法是否适合函数指针 struct CARD int value int cost This
  • GAE、JPA、XG 事务、实体组过多异常

    我知道 GAE 上的 XG 交易有 5 个实体组的限制 但我认为我在一项交易中仅使用 3 个组 商品 类别 商品类别 但仍然遇到此异常 引起原因 java lang IllegalArgumentException 在单个事务中对太多实体组
  • NuGet 未显示任何包

    I ve tried going to the URL listed for the official package source with my browser and I only get an empty list I also t
  • 带有隐藏输入的 Selenium 文件选择器[type=file]

    我有一个图像文件上传并想测试它硒 java 用户有两个选择 他可以通过从本地计算机拖放来推送图像 也可以单击 浏览 按钮 然后出现浏览器指定的文件选择器 In Selenium我尝试了不同的事情 据我所知Selenium不提供浏览器之外的操