所以我碰到了一些障碍。我试图自动化一个测试用例,我需要将多个文件传递给输入节点,但我无法弄清楚如何执行此操作。我可以使用Mechanize或Watir,但是在自动化中似乎相对主要的主题上找到的信息非常少。在下面的代码片段中,我将Ruby与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是否有类似的解决方法?
FWIW:肯定看起来像'的FileField#set'expects的单一路径作为参数:https://github.com/watir/watir-webdriver/blob/master/lib/watir-webdriver/elements/file_field .rb – orde
它的确如此。我最终只是实施了Chrome解决方案。从本质上讲,你可以将它传递给一个由路径分隔的字符串换行符,它会将多个文件上传到输入节点。 –