所以我遇到了一些障碍。我正在尝试自动化一个测试用例,其中我需要将多个文件传递到输入节点,但我不知道如何执行此操作。我可以使用 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 是否有类似的解决方法?
目前 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)