2016-08-31 57 views
1

我一直在量角器脚本上传文件。量角器Zip文件上传

function upload(params) { 
    return _waitForElm(params.xpath) 
     .then(() => { 
      var absPath = path.resolve(__dirname, '../../../assets/' + params.filePath.match(/[^\\\/]+$/)[0]); 
      return $(params.xpath).sendKeys(absPath); 
     }).catch(err => { 
      console.error(jasmine.getEnv().currentSpec.description, 'Upload file', params.xpath); 
      throw err; 
     }); 
} 

params.xpath实际上是一个有效的CSS选择器(旧的变量名)。

/** 
* Wait for an element to be present and scroll to it if not displayed. 
* 
* @param xpath 
* @returns {Promise<U>|IPromise<U>} 
*/ 
function waitForElm(xpath) { 
    return browser.wait(() => { 
    return element.all(by.css(xpath)).then(items => { 
     return items.length > 0; 
    }); 
}, 10000) 
    .then(() => { 
     return $(xpath).isDisplayed().then(isDisplayed => { 
      if (!isDisplayed) { 
       return _scrollToElm(xpath); 
      } 
     }); 
    }); 
} 

/** 
* Scroll to the element in the page. 
* 
* @param xpath 
* @returns {Promise<U>|IPromise<U>} 
* @private 
*/ 
function _scrollToElm(xpath) { 
    let elm = $(xpath); 
    return browser.executeScript('arguments[0].scrollIntoView();', elm.getWebElement()); 
} 

上传功能完美的工作为我的其他文件(JPG,PNG和PDF),但不上传zip文件和失败时不抛出任何异常。另外输入文件正在接受zip文件,因为我可以手动完成。

如果您遇到过这样的问题,我将不胜感激地收到任何建议。

回答

0

对不起,回复迟了,问题出在量角器上。我已经将软件包更新到最新版本,并且工作正常。

1

你的代码看起来是正确的,我只是检查上传一个ZIP文件,部分重新使用你的代码,它看起来不错。

var filePath = 'documents.zip'; 
    var absPath = path.resolve(__dirname, '../Resources/' + filePath.match(/[^\\\/]+$/)[0]); 
    console.log(absPath); // C:\Users\<<user>>\Project\abc\Resources\documents.zip 
    filespage.upload(absPath); 
+0

哦,我可能会搜索一个没有... Thx的更新问题。 – Urriel