我正在编写一个需要上传 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/