2016-11-17 15 views
1

私のプロジェクトではElectron frameworkが使用されています。開発者はビルドし、私に電子exeを与えている。 exeをクリックして開くと、自分のアプリケーションのエントリポイントであるログインフレームが表示されます。フォームには、基本的に3つのコントロール、ユーザー名、パスワードのテキストボックス、サインインボタンがあります。今、そのページで機能テストを実行する必要があります。私の要件は、ユーザー名とパスワードのテキストボックスにテキストを入力し、送信ボタンをクリックします。 (この場合はログインが成功したと仮定します)。ログインしたら、私はテストしなければならないウェルカムメッセージが表示されます。私の質問は、どのようにテキストボックスを取得し、電子アプリケーションからボタンリファレンスを提出し、その上でアクションを実行することです。私は以下のコードを試してみましたが、私の電子exeを開きますが、何もせずにテストケースを渡します。スペクトロンを使って電子アプリのコントロールとやりとりする方法

var assert = require('assert'); 
var Application = require('spectron').Application 
describe('Test Suite 1', function() { 
    this.timeout(100000) 
    beforeEach(function() { 
     this.app = new Application({ 
      path: '/CorumDispense-win32-ia32/CorumDispense.exe' 
     }) 

     return this.app.start()   
    }) 
    /*afterEach(function() { 
     if (this.app && this.app.isRunning()) { 
      return this.app.stop()    
     } 
    })*/ 
    it('Login Dispense', function() { 
     var txtUserName = this.app.client.elementIdText('inpuUsername3'); 
     var txtPassword = this.app.client.elementIdText('inputPassword3'); 
     var btnSignIn = this.app.client.element('//button/*[text(),Sign in]'); 
     txtUserName.keys('Bharat');  
     txtPassword.keys('Bharat');  

     //click on signin button 
     btnSignIn.click(); 

    }) 
}) 

出力テストケースが経過しているが、私は、任意のテキストは、ユーザー名やパスワードにキー入力されているとボタンが

Test Name: Test Suite 1 Login Dispense 
Test Outcome: Passed 
Result StandardOutput: 
mocha.json options file not found. Using default values: { ui: 'tdd', reporter: 'tap', timeout: 2000 } 
1..1 
ok 1 Test Suite 1 Login Dispense 
# tests 1 
# pass 1 
# fail 0 

マイpackage.jsonをクリックされていない参照していけないさ

{ 
    "name": "lighthouse", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "description": "Lighthouse", 
    "author": { 
    "name": "bpappu" 
    }, 
    "dependencies": { 
    "body-parser": "~1.8.1", 
    "cookie-parser": "~1.3.3", 
    "debug": "~2.0.0", 
    "express": "~4.9.0", 
    "jade": "~1.6.0", 
    "morgan": "~1.3.0", 
    "serve-favicon": "~2.1.3", 
    "spectron": "^3.4.0", 
    "stylus": "0.42.3" 
    }, 
    "devDependencies": { 
    "chai": "^3.5.0", 
    "electron": "^1.4.6", 
    "electroner": "^4.0.2", 
    "mocha": "^3.1.2", 
    "spectron": "^3.4.0", 
    "spectron-keys": "0.0.1" 
    } 
} 

ここで何か不足している場合は教えてください。 歓声、 Bharadwaj。

答えて

0

私はこの問題を解決しました。問題は、アプリケーションで開いている開発者ツールであることが判明します。これが原因で問題が発生し、コントロールを取得できません。開発者ツールオプションを閉じてアプリケーションを再パッケージ化すると、上記のコードは正常に動作します。この問題は解決します。

関連する問題