使用Watir将多个文件传递到输入节点(使用Ruby)

时间:2016-05-16 21:49:34

标签: automation mechanize watir browser-automation

所以我遇到了一些障碍。我试图自动化一个测试用例,我需要将多个文件传递给输入节点,我无法弄清楚如何这样做。我可以使用Mechanize或Watir,但是在一个似乎相对主要的自动化主题中找不到很少的信息。在下面的片段中,我正在使用Watir和Ruby。我遇到的主要问题是,当选择多个文件时,输入节点不再可见。输入节点确实接受多个文件,并且传入单个路径确实会导致上载成功,就像这样。

path1 = "/path/to/file.json"
file_field.set path1

我认为传入多个文件就像传入一个字符串一样简单,其中多个路径由某种分隔符分隔。然而,我对网络开发并不是特别精明,并且正在努力掌握我应该从哪里开始。当我尝试传递多个文件时:

multiple_paths = ("/path/to/file1.json"; "/path/to/file2.json")
file_field.set multiple_paths

它上传第二个文件但不是第一个文件(让我觉得它可能是按顺序上传它们,第二个是覆盖)。

你认为使用Watir甚至可以做到这一点吗?我知道Chrome有一个使用\ n作为分隔符上传多个文件的解决方法,对Firefox有类似的解决方法吗?

1 个答案:

答案 0 :(得分:1)

目前似乎并不是Firefox的解决方法。如果有人知道,请发布答案,因为我无法在任何地方找到解决方案。我想我会在这里发布Chrome的解决方案,因为资源很少。

如果您需要测试多个文件上传,请让该特定实例加载Chrome驱动程序:

@browser = Watir::Browser.new :chrome, :prefs => profile

然后你想要传递一个看起来像这样的字符串:

paths = "path/to/first/file.json\npath/to/second/file.json\n...etc
file_field.send_keys paths