隐藏文件输入时如何使用Selenium上传文件?
我正在尝试在现代网页上自动执行文件上传,该网页在旧的之上使用了一些花哨的拖放上传面板。 该元素仍然在页面上,但Selenium不能使用它 – 我得到了着名的
"Element is not currently visible and so may not be interacted with"
错误。 我想我有两个选择:
- 使元素以某种方式显示 – 但是调用
jQuery(...).show()
对它没有帮助,我不太清楚为什么F12工具会将元素报告为可见但是Selenium仍然认为它不是(并且,说实话,我也看不到文件字段,F12工具只是突出显示页面上的矩形区域) - 通过JavaScript设置
的值但我得到各种安全错误(尝试过Firefox和Chrome)。
我该怎么办? 理想情况下,无论元素是否可见,都会有一种强制Selenium执行操作的方法,但我不认为这是可能的,是吗?
使用替代方法隐藏文件输入,例如:
-
绝对定位屏幕外
-
绝对定位+剪辑:rect
然后它会工作。
参考
-
如何在Html文件上传中隐藏文本字段
-
在JavaScript中,我可以以编程方式为文件输入元素触发“单击”事件吗?
-
Blueimp文件上传IE 8中没有发生任何事情
-
文件输入javascript点击生成的不是真正的鼠标点击铬