无效参数:尝试上传文件时找不到文件错误

时间:2019-05-22 09:49:21

标签: protractor browserstack

我进行了E2E测试,将文件上传到可以在本地计算机上运行但无法在Browserstack上运行的应用程序。但由于以下原因而失败:

invalid argument: File not found : /home/travis/build/xx/xx/e2e/src/xx/testfile

这是代码

let fileToUpload = 'testfile';
let absolutePath = path.resolve(__dirname, fileToUpload);
await browser.setFileDetector(new remote.FileDetector());
let fileElem = $('input[type="file"]');
await fileElem.sendKeys(absolutePath);

我在代码库中上传了文件,供travis挑选。 任何输入表示赞赏。

谢谢

2 个答案:

答案 0 :(得分:0)

由于文件上传是在本地计算机上进行的,因此您可以尝试使用“本地文件检测器”选项。

driver.setFileDetector(new LocalFileDetector());
driver.get("http://www.fileconvoy.com/");
driver.findElement(By.id("upfile_0")).sendKeys("C:\\Users\\hello\\url.txt");
driver.findElement(By.id("readTermsOfUse")).click();
driver.findElement(By.name("form_upload")).submit();

以上代码段将上传位于本地计算机上的文件。此处提供了相同的详细信息:https://www.browserstack.com/automate/java#enhancements-uploads-downloads

您可以使用您选择的语言来移植它。

答案 1 :(得分:0)

 ((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector());
 driver.get("https://www.monsterindia.com/seeker/registration");                 

 WebElement browser = driver.findElement(By.xpath("//*[@id=\"file-upload\"]"));                  
     //Upload button xpath
                        
   browser.sendKeys("add here upload file path");              
                        
   System.out.println("File upload Successfully");

这也是上传文件的简单方法。我在 Chrome 浏览器中使用过这段代码。