0

我正在使用带有 Webrat 和 Cucumber 的 selenium-client gem 来测试 rails 项目。我已经按照这里的描述设置了 Cucumber:https ://github.com/cucumber/cucumber/wiki/Setting-up-Selenium

我的问题是 Selenium 无法执行文件上传。理想情况下,我希望能够复制 webrat 的 'attach_file' 方法。我尝试通过使用 selenium-client 的 'type' 方法键入所需文件的路径来回避这个问题,但这似乎失败了。

有没有人建议使用 selenium-client (即不是常规的 Selenium gem)的解决方法?

4

2 回答 2

1

普通 selenium 无法做到这一点,因为浏览器安全性阻止 javascript 写入 input=file 元素。这是一项安全功能,因此如果您访问被黑客入侵的网站,您的密码文件不会被上传给黑客。

http://jira.openqa.org/browse/SEL-63有详细信息

于 2009-08-10T13:06:19.130 回答
0

我终于想通了。

您需要使用带有 chrome 后端的 firefox,并且需要指定绝对文件路径。

我最终创建了一个帮助模块来指定文件路径,以及一个包含测试内容的“fixtures”文件夹。这是我提出的解决方案的要点:http: //gist.github.com/214185

因此完全可以复制 Webrat 的 attach_file 方法!

于 2009-11-04T17:55:25.947 回答