我正在编写一个需要上传 JPEG 图像的 Protractor 脚本。我可以单击打开 Windows 文件选择器的上传按钮。但是,然后我需要使用 Protractor 在该文件选择器对话框中写入文件的路径。

但是,我不知道它是如何工作的。我尝试只使用 sendKeys 输入路径,但到目前为止它不起作用。

任何人都知道如何做到这一点?

谢谢。 :)

最佳答案

在“How can I control the windows File Selector using protractor ”中尝试我的答案。

如果您需要快速解决方案,请尝试以下解决方案:

// set file detector
var remote = require('../../node_modules/protractor/node_modules/selenium-webdriver/remote');
browser.setFileDetector(new remote.FileDetector());


var fileToUpload = '../sample.txt';
var absolutePath = path.resolve(__dirname, fileToUpload);

var fileElem = element(by.css('input[type="file"]'));

// Unhide file input
browser.executeScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px';  arguments[0].style.opacity = 1", fileElem.getWebElement());

fileElem.sendKeys(absolutePath);

// take a breath
browser.driver.sleep(100);

// click upload button
element(by.css('button[data-ng-click="uploadFile(file)"]')).click(); // does post request

关于file-upload - 如何使用 Protractor 上传文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37459130/

10-16 04:24