【问题标题】:Selenium WebDriver: Upload multiple filesSelenium WebDriver:上传多个文件
【发布时间】:2014-07-20 06:18:21
【问题描述】:

我的测试需要在不同的浏览器上传测试文件(我使用WebDriver + Java)。 对于单个文件上传,一切正常。我只是发送路径

"C:\\testdata\\testfile.txt"
But, syntax changes for multiple upload and different browsers.

(
IE: 
"\"" + "C:\\Selenium\\TestData\\Flexy - BigFile1.txt"+"\"" +"\""+"C:\\Selenium\\TestData\\Flexy - BigFile2.txt" + "\""

CHROME: 
"C:\\Selenium\\TestData\\Flexy - BigFile1.txt"+"\n"+"C:\\Selenium\\TestData\\Flexy - BigFile2.txt".

Firefox:我找不到正确的语法。

有什么想法吗?

所有浏览器都有通用语法吗?

【问题讨论】:

    标签: java file selenium-webdriver upload


    【解决方案1】:

    据我所知,selenium仍然不支持多文件上传(见issue on google code)。

    至少有一种解决方法:显然创建一个包含所需输入字段的表单(请参阅another stackoverflow question)。不是最好的解决方案,因为它(可能)需要更改您的代码才能使 selenium 工作。

    但是,正如您所发现的(感谢您!),在 chrome 和(尽管我没有测试过)IE 中似乎也可以触发多个文件上传。

    我刚刚确认 chrome "\n" 技巧在本地和 Browserstack 上都有效(我使用了他们提供的默认图像),考虑到事物的状态,这对我来说已经足够好了。

    我希望这会有所帮助。

    【讨论】:

    • 太棒了!如果不是您的回答,我永远不会意识到行尾是解决方案。适用于 php 中的 georgesironi 硒测试!谢谢你。
    • 看起来 "\n" 解决方案现在也适用于 Firefox。
    • 也支持文件夹上传(也使用 SendKeys),但仅适用于 Chrome(在此 GitHub issue 中提到)。我正在使用带有 Chrome 89 的 Python Selenium 进行测试。不幸的是,它似乎不适用于 Firefox。其他浏览器我没试过。
    【解决方案2】:

    我的解决方案(python 中的 selenium)是在上传之前为每个图像路径重复 send_keys。

    两个文件的示例:

    driver.find_element_by_name("filename").send_keys(file_path_1)
    driver.find_element_by_name("filename").send_keys(file_path_2)
    driver.find_elements_by_xpath("//*[contains(text(), 'Upload')]")[0].send_keys(Keys.RETURN)
    

    【讨论】:

      【解决方案3】:

      我也有机会通过 Selenium 上传多个文件。

      最终使用 AutoIT 获得解决方案。

      您可以在运行时传递文件路径。

      ControlFocus(“File Upload”,””,”Edit1″)
      ControlSetText(“File Upload”,””,”Edit1″,$CmdLine[1])
      ControlClick(“File Upload”,””,”Button1″)
      
      
      Runtime.getRuntime().exec("C:\\Users\\Mukesh_50\\Desktop\\My blog\\AutoIT\\fileUpload3.exe"+" "+"C:\\Users\\Mukesh_50\\Downloads\\VerifyTitle.java");
      

      如果发现任何问题,请查看complete article with video.

      【讨论】:

      • 一些帮助您提高帖子质量的反馈:我不知道 AutoIT 是什么;我不知道代码 sn-p 应该是什么语言或上下文应该是什么;并且代码示例充满了“漂亮”的引号并且没有格式化。
      猜你喜欢
      • 2013-06-17
      • 1970-01-01
      • 2013-09-20
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2020-10-24
      • 2015-03-22
      相关资源
      最近更新 更多