是否可以通过锚标记上传带有硒的文件?
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>
标签完成。
参考
我有一个上传文件按钮,如下所示:<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(多用途互联网邮件扩展)类型URLaccesskey
:访问键(或快捷键)。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>
标签完成。