我的部分watir脚本测试上传表单。我可以打开上传框,但它不会导航到该文件夹并选择我想要的文件。相反,脚本将崩溃并给出此错误: 没有这样的文件或目录 - /Users/Abdulla/Documents/Ads/1.jpg(Errno :: ENOENT)
这是我的代码,我不确定我是否正确行事。这是在mac btw上使用chromewatir。
browser.file_field(:name, "u").click
browser.file_field(:name, "u").set("/Users/Abdulla/Documents/Ads/1.jpg")
路径名是否应该以/ Users开头?或者应该是/ Documents?因为当它点击选择文件时,它会在Documents文件夹中打开。
答案 0 :(得分:1)
1)我建议切换到Watir-Webdriver来驱动chrome。正如评论中所指出的那样,chrome-watir项目此时已经非常死亡
2)检查文件是否存在。
3)检查运行watir(或watir-webdriver)的用户是否可以访问该文件。或者考虑将文件放在更公开的目录中(就目录的权限而言)
4)我无法在mac上确定,但在PC上,chrome上传文件选择器会记住用于上传文件的最后一个目录并打开到同一个地方(可能是为了方便用户),但是指定文件的完整文件路径应该不是问题。您可以尝试手动执行此操作,看看是否有效,如果您需要确定。
5)我不确定我们能告诉你正确的路径是什么,毕竟你的系统,你的用户和你所涉及的文件,你会更多地了解你在这方面做了什么比我们任何人都愿意。
答案 1 :(得分:0)
我的猜测是/Users/Abdulla/Documents/Ads/1.jpg
文件不存在,正如错误信息所示。
答案 2 :(得分:0)
如果您使用'watir-webdriver',则可以使用此代码。
我认为您不需要单击文件字段,只需要设置文件路径。
local_file = "/Users/Abdulla/Documents/Ads/1.jpg"
puts (File.exists? local_file)
browser.file_field(:id => 'upComponent').set local_file