当前位置: 首页 > 知识库问答 >
问题:

自动上传锚标签的文件场景

谭玄天
2023-03-14

我正在尝试使用不同的断言组合来自动化与文件上传相关的多种场景的行为。UI中有一个锚标签,而不是输入标签,这就是为什么我不能使用发送键来上传文件。我不想使用AutoIT、Sikuli等工具,因为它们与云环境上的远程执行不兼容,并增加了额外的库责任。

这是一个角度js应用程序,DOM代码是

---“a href=”javascript:void(0)“title=”选择要上载的文件“class=”btn btn blue“ng show=”fileUploadSubmitted“id=”File_input_btn“ng click=”uploadFileAttachment()“”

我试图找到:- 1:angular js库的任何内置上传函数,以便我可以通过javascript执行器执行它。2:Sikuli和AutoIt正在工作,但这将是最后一个解决方案3:尝试编辑标签名称以输入DOM中的类型文件,然后是发送键,但它不起作用

共有1个答案

裴承安
2023-03-14

你能试试下面的方法吗?

Tested locally not on the server.

# get the button element
ele = driver.find_element_by_id("file_input_btn")
# add a hidden file input ( might have to change the onchange event based on the events associated to the button in above line as you don't have a form)
driver.execute_script("var x=  document.createElement('INPUT');x.setAttribute('type', 'file'); x.setAttribute('onchange','this.form.submit()');x.setAttribute('hidden', 'true'); arguments[0].appendChild(x);",ele)
# send the file path here ( this should upload the file)
driver.find_element_by_xpath("//input[@type='file']").send_keys("file path should go here")
 类似资料:
  • 问题内容: 如何使文件选择器的按钮文本国际化?例如,此代码向用户呈现的内容: 问题答案: 它通常由浏览器提供并且很难更改,因此解决该问题的唯一方法是CSS / JavaScript hack,

  • 本文向大家介绍bootstrapfileinput实现文件自动上传,包括了bootstrapfileinput实现文件自动上传的使用技巧和注意事项,需要的朋友参考一下 bootstrap fileinput文件上传插件功能如此强大,样式非常美观,并且支持上传文件预览,ajax同步或异步上传,拖曳文件上传等炫酷的功能,完全没有理由不去使用, JS引用: HTML: <input id="fileUp

  • 问题内容: 假设我有一个锚标记,例如 如何防止浏览器导航到 AngularJS中的 #? 问题答案: 更新 :此后,我改变了主意。经过更多的开发和花时间进行此工作之后,我相信针对此问题的更好解决方案是执行以下操作: 然后更新您的规则,使其具有附加规则: 它更加简单,并提供完全相同的功能,并且效率更高。希望对将来寻找该解决方案的其他人有所帮助。 以下是我以前的解决方案,仅出于遗留目的而留在这里: 如

  • 问题内容: 我在图像周围有一个标签。我在标签所在的div上设置了边框。我将margin和padding都设置为0,但由于某种原因,我的标签仍比我的图像高3像素。这在图像和边框之间留了一些空间,破坏了我想要完成的外观。 我究竟做错了什么?我已经在FireFox和Chrome中测试了相同的结果。谢谢 问题答案: 图像是如此,它被视为字符,位于基线上。差距是由为下降器提供的空间引起的(可以在类似j,g,

  • 我需要更改JavaFX中标签的锚点。我将锚点描述为选择来翻译底层节点的点。默认情况下,锚点似乎是左上角。 我试图通过如下描述的附加翻译来解决这个问题: 代码应转换标签,使其像右下角的锚点一样工作。这不起作用,因为在我执行代码时,标签的边界框是[minX:0.0,minY:0.0,minZ:0.0,宽度:-1.0,高度:-1.0,深度:0.0,maxX:-1.0,maxY:-1.0,maxZ:0.0

  • 我有一个ASP。NET文件上载控件,当您单击上载按钮选择要上载的文件时,该控件将打开一个窗口。但问题是,网络驱动程序无法识别窗口,因此无法选择要上载的文件。 我在stackoverflow中找到了许多使用sendkey输入文件路径的解决方案。我认为当你有html文件上传控制时,这是有效的。在我的情况下,我有ASP。NET文件上传控件,它没有文本框,我可以在其中使用sendkey输入文件路径。 我该