繁体   English   中英

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

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

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

尝试使用sendKeys()方法通过它上传文件。 但是我得到的错误不能集中在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>标签上传带有硒的文件。

文件上传是通过以下方式实现的:

  • <input>标签。
  • 这些<input>标记在被任何字符序列填充之前需要重点关注

反之,

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

    • charset :定义链接文档的字符编码。
    • coords :指定适合shape属性的坐标,以定义图像映射的图像区域
    • href :指定页面的URL或链接指向的锚点的名称。
    • hreflang :目标URL的语言代码。
    • name :标记链接跳转到的页面区域。
    • rel :描述当前文档和目标URI之间的关系。
    • rev :指定目标URL和当前文档之间的关系。
    • shape :指定图像地图的形状。
    • target :在何处打开目标URL。
    • type :指定目标URL的MIME(多用途Internet邮件扩展名)类型
    • accesskey :快捷键(或快捷键)。
    • class :文档范围的标识符。
    • dir :指定文本的方向。
    • id :文档范围的标识符。
    • tabindex :当用户“浏览”页面上的元素时,帮助确定跳转顺序。
    • title :指定与元素关联的标题。
    • style :有助于包括内嵌casecadubf样式表。
    • lang :设置语言代码。
  • <a>标记的事件属性如下:

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

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

但是,由于您看到的错误是……无法专注于元素……这可能是由于其他因素导致的, 超出了此问题的范围

结论

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

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM