2016-04-07 16 views
1

分度器のテストを使用してファイルをアップロードしようとしています。分度器テストを使用したファイルのアップロードに失敗しました

理想的なシナリオ:彼らは彼らのファイル

  • そして最後の検索場所をフォームで

    1. 、最初のユーザーが「ファイルのアップロード」をクリックしなければならないボタン
    2. 次のウィンドウが表示され、ファイルがあります選ばれた

    createJobTest.js

    it('should click upload file button', function() { 
         createJobPage.step5UploadFile.click().then(function(){ 
          browser.waitForAngular(); 
          }); 
         }); 
        }) 
    
    
        var path = require('path'); 
    
        it('should upload a file', function() { 
         var fileToUpload = '../desktop/test.txt', 
          absolutePath = path.resolve(__dirname, fileToUpload); 
    
         $('input[type="file"]').sendKeys(absolutePath);  
         $('#uploadButton').click(); 
        }); 
    

    createJobPage.js

    this.step5UploadFile = element(by.id('step5--upload-file')); 
    

    createJob.html

    <span class="btn btn-blue-one btn-upload" id="step5--upload-file" flow-btn translate="uploadfile"></span> 
    

    アップロードファイルウィンドウが開きますが、私はこのエラーを取得しています:

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

    ご協力いただきありがとうございます。

  • +0

    http://stackoverflow.com/questions/36182407/protractor-upload-file-running-exe-via-protractor/36182733#36182733 – KCaradonna

    +0

    @KCaradonnaコメントをお寄せいただきありがとうございますが、同じエラーが発生しています: ( –

    +0

    分度器でファイルをアップロードするときは、ファイルをアップロードするボタンをクリックする必要はありません。アップロードするファイルの絶対パスをファイルアップロード要素に直接送信しています。私の推測では、ファイルを送信しようとしている要素は、ファイルのアップロードダイアログの下に隠れているため表示されなくなりました。最初の "it"ブロックと$( '#uploadButton' ).click();上記のコードで。これが役に立ったら、私は答えとして提出できます。 – KCaradonna

    答えて

    0
    var path = require('path'); 
         var fileToUpload = '../desktop/test.txt'; 
         var absolutePath = path.resolve('__dirname', fileToUpload); 
         $('input[type="file"]').sendKeys(absolutePath); 
         browser.driver.sleep(100); 
    
    1

    1つの方法はsendkeysです。

     var fileToUpload =filepath; 
         var absolutePath = path.resolve(__dirname, fileToUpload); // absolute path 
         var fileElement = element(by.css('input[type="file"]')); 
         browser.executeScript("arguments[0].style.visibility = 'visible'; ", fileElement.getWebElement()); 
         fileElement.sendKeys(absolutePath); 
    

    もう1つの方法は、デスクトップウィンドウで操作することです。主な機能は何ですか?私はすでに答えた下のリンクから回答を参照することができます。

    File upload using autoit

    これは私が自分のアプリケーションで使用しているものです。

    関連する問題