2016-08-31 84 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