我面前有以下场景:
我正在使用 Selenium 来驱动我的浏览器填写一些表格,效果非常好。
现在我到了这一点,我还想通过给定的网络表单上传文件(不能改变它的处理方式,只能操作 Javascript/HTML/DOM)。正如我所发现的,出于安全原因,单击该字段时会立即弹出文件上传窗口。并且也无法通过普通的 Javascript 进行操作。也有道理...
不过我发现,Firefox 附加组件应该能够做到这一点。我最接近答案的是关于这个主题的另一个 Stack Overflow 线程。如果我让这个为我工作,那就太棒了!:-) 但不幸的是我还没有……
最小的例子:
<form method="post" url="http://www.example.com">
<input type="file" id="fileInput"/>
</form>
调用时(从 Firebug 中的控制台)
document.getElementById('fileInput').value = "C:\\image.png";
在获取“错误:操作不安全。” 这是我所期望的。
当在 Firefox 附加组件中的 contentScriptFile 中调用相同的内容时(我正在使用附加组件构建器来创建它),脚本会简单地中断而不会出现错误。我的指标是,我之前确实看到了警报,但在那条线之后没有看到
现在的问题不是为什么我没有收到错误,而是:
1. 我在正确的轨道上吗?这应该工作吗?
2. 我如何使这项工作?我不确定上面链接中提到的“chrome authority”是否与我相关。我是否必须以某种方式扩展脚本权限?如果是这样,怎么做?
谢谢!
桑德罗
PS 当我尝试通过 jQuery 设置值时,Firefox 完全崩溃了。
PPS 目前这仅适用于我的个人计算机,跨浏览器问题或类似问题因此不相关