是否可以通过锚标记上传带有硒的文件?

Is it possible to upload file with selenium through anchor tag?

我有一个上传文件按钮,如下所示:<a href="javascript:void('');"></a>

正在尝试使用 sendKeys() 方法通过它上传文件。 但是我收到错误 cannot focus on element。是否有解决方法或使用 <a> 标签上传文件的方法?

我用这个:

driver.findElementsByXPath("//a[@title='Upload an image']").get(0).sendKeys(System.getProperty("user.dir") + "\files\image.jpg");

还尝试 click()moveToElement(element).build().perform() 以关注元素。

无法通过<a>标签上传带有selenium的文件。

文件上传是通过:

  • <input> 个标签。
  • 这些<input>标签在被任何字符序列
  • 填充之前需要聚焦

相反,

  • <a>标签的属性如下:

    • charset: 定义linked文档的字符编码。
    • coords:指定适合shape属性的坐标,为图像贴图定义图像区域
    • href:指定页面的URL或link指向的锚点名称。
    • hreflang: 目的地的语言代码URL.
    • name:标记link跳转到的页面区域。
    • rel:描述当前文档与目标URI之间的关系。
    • rev:指定目标URL与当前文档的关系
    • shape:指定图像贴图的形状。
    • target: 在哪里打开目标URL.
    • type:指定目标的MIME(多用途互联网邮件扩展)类型URL
    • accesskey:访问键(或快捷键)。
    • class:文档范围标识符。
    • dir:指定文字的方向。
    • id:文档范围标识符。
    • tabindex:帮助确定用户 'tabs' 通过页面上的元素时的 Tab 键顺序。
    • title: 指定与元素关联的标题。
    • style:有助于包含内联 casecadubf 样式 sheet.
    • lang: 设置语言代码。
  • <a>标签的事件属性如下:

    • onfocus:当元素获得焦点时脚本运行。
    • onblur: 脚本在元素失去焦点时运行。
    • onclick: 当鼠标点击时脚本运行。
    • ondblclick: 当鼠标double-click.
    • 时脚本运行
    • onmousedown:按下鼠标按钮时脚本运行。
    • onmouseup: 脚本在鼠标按钮被释放时运行。
    • onmouseover: 当鼠标指针移动到元素上时脚本运行。
    • onmousemove: 脚本在鼠标指针移动时运行。
    • onmouseout: 当鼠标指针移出元素时脚本运行。
    • onkeypress: 脚本在按下和释放键时运行。
    • onkeydown:按下键时脚本运行。
    • onkeyup: 脚本在释放键时运行。

因此,理想情况下 <a> 标签也应该能够接收 focus.

但是正如您所看到的错误 ...无法专注于元素... 这可能是由于 超出范围的其他因素 这个问题。

结论

文件上传只能通过 <input> 标签完成。

参考