我进行了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挑选。 任何输入表示赞赏。
谢谢
答案 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 浏览器中使用过这段代码。