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

时间:2018-11-19 19:24:17

标签: java selenium selenium-webdriver file-upload anchor

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

尝试使用sendKeys()方法通过文件上传文件。 但出现错误无法专注于元素。有没有解决方法或使用<a>标签上传文件的方法?

我用这个:

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

还尝试过click()moveToElement(element).build().perform()来专注于元素。

1 个答案:

答案 0 :(得分:0)

,将无法通过 <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> 标签完成。

参考