2016-12-02 9 views
2

に画像をアップロードすることができません:次のエラーに直面分度器

Failed: No element found using locator: By(css selector, input[type="images"])

分度器コード:

it("image upload",function(){ 
    browser.ignoreSynchronization = true; 
    browser.sleep(4000); 
    element(by.css('[ng-click="imagePost()"]')).click(); 
    browser.sleep(3000); 
    var ele = element(by.model("files")).click(); 
    browser.wait(EC.visibilityOf(ele),8000,'Ele is not presented'); 

    var fileToUpload = "C:\Users\Shiva\Desktop\mdkg.jpg;" 
    console.log(fileToUpload); 
    var absolutePath = path.resolve(fileToUpload); 
    console.log(absolutePath); 
    $('input[type="images"]').sendKeys(absolutePath); 
    element(by.buttonText('Post Image')).click(); 
    browser.sleep(5000); 
}); 

HTMLコード画像をアップロードする:

<div ngf-drop ng-model="files" ngf-pattern="image/*" data-ngf-multiple="true" ng-repeat="image in images1" ngf-size> 
     <img src="{{image}}" width = "100%" height = "100%" class="m-l img-responsive img-rounded m-b" alt="post images"> 
     </img-crop> 
     <span ng-show="loading" class="text-center col-xs-12" ></span> 
    </div> 
</div> 
<div class="modal-actions "> 
    <button type="submit " class="btn-link modal-action "> 
     <strong><span class="icon icon-user "></span>postImg</strong> 
    </button> 
    <button type="button" id="fileinput" ng-model="files" ngf-select accept="image/* " data-ngf-multiple="true" class="btn-link modal-action">Upload Image 

ここで私は、画像をuplodingていますが、アップロード画像をクリックすると、ローカルシステムに移動し、画像をアップロードする必要があります。アップロードした後、投稿する必要があります。ここ

+1

どこ 'の'のですか? – vjarysta

+0

ありがとう@vjarysta。入力タグは私のコードにはありませんが、私は分断器に入力タグを置いたときに実行されており、許可されていないファイルとしてポップアップを表示しています(ユーザーが画像ポップアップ以外をアップロードしようとすると、 – Shiva

+0

誰もがこれにまだ苦労して答えることができます – Shiva

答えて

1

は、ページオブジェクトを使用して私の答えです:

this.uploadImage = function(){ 

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


     var fileToUpload = '../../mdkg.jpg'; 
     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.sleep(4000); 
     element(by.buttonText('Post Image')).click(); 
     browser.sleep(4000); 
    }; 

post_text.uploadImage();