2017-03-24 9 views
0

protractor-helpers(var helpers = require( 'protractor-helpers'))を使用してdata-hook属性にアクセスしようとしていますが、何らかの理由で以下のエラーが発生します:protracter-helperデータフック属性エラー

[12:06:50] E/launcher - Error: ReferenceError: beforeEach is not defined 
    at C:\Users\xyz\node_modules\protractor-helpers\dist\protractor-helpers.js:258:2 
    at Object.<anonymous> (C:\Users\xyz\node_modules\protractor-helpers\dist\protractor-helpers.js:498:3) 
    at Module._compile (module.js:571:32) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
    at Function.Module._load (module.js:439:3) 
    at Module.require (module.js:498:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (C:\Users\xyz\ProtractorWorkspace\Protractor\pos\Test.js:11:15) 

私conf.jsファイルが

exports.config = { 

    seleniumAddress: 'http://localhost:4444/wd/hub', 

    specs: [ 
    'features/sample.feature' 
    ], 

    capabilities: { 
    'browserName': 'chrome' 
    }, 

    framework: 'custom', 
    frameworkPath: require.resolve('protractor-cucumber-framework'), 

    cucumberOpts: { 
    require: 'features/*.js', 
    format: 'pretty' 
    } 

}; 

は、誰かが助けてくださいすることができ、以下の通りである。のために

+0

ジャスミンのために、ソースコードが 'beforeEach(function(){jasmine.addMatchers({それはキュウリをサポートしているように見えませんが、私はそれについて肯定的ではありません。 https://github.com/wix/protractor-helpers/blob/master/src/matchers.js – Gunderson

+0

あなたのテストも表示できますか? – nilesh

+0

これはrequireステートメントで失敗しています。以下はコードスニペットです。 var clickFn = require( '../ common/ClickFunctions.js'); var SelectDropDown = require( '../ common/DropDownFunctions.js'); var helpers = require( 'protractor-helpers'); するvar startQuote =ヘルプ機能(){ \t } – chandra

答えて

0

If you are using protractor-jasmine framework(which is the default framework in protractor) you should use jasmine's hooks -beforeEach, beforeAll etc.

If you are using protractor-cucumber framework you should cucumberjs's hooks/event-handlers - beforeScenario, beforeFeature etc.

分度器-jasmineフックは、このリンクを見てください - jasmine hooks

私はあなたがprotractor-cucumber-frameworkを使用しているので、私はフックに建てcucumberjsを使用する方法についてここで書いされることを参照してください。

まず、プロジェクトにcucumberjs node moduleとprotractor-cucumber-frameworkモジュールが必要です。 npm install -D cucumber(私はデベロッパー依存であることが好ましい)

キュウリの現在のバージョンは2.0(rc-8)で、その構文は古いバージョンとはまったく異なります。ですから、すべてのシナリオの前に、ブラウザのURLを起動したい場合は、このような何かをしなければならない -

/* Cucumber 2.0 syntax **/ 

var {defineSupportCode} = require('cucumber'); 

defineSupportCode(function({Before}) { 

Before(function() { 
browser.get(url); 
}); 

// You can also specify cucumber tags for scenarios, This hook will be executed before scenarios tagged with @foo 
Before({tags: "@foo"}, function() { 
browser.get(url) 
}); 
}); 

あなたがここにリスト全体の例とフックを見つけることができる - cucumber hooks

あなたはより多くの例のための私のレポのチェックアウト可能性があり -

+0

おかげラムが、それはキュウリのフックをreagardingていなかった、それはDOM内のデータ・フック属性に関するされ、ためにDOMのコンテンツ以下 – chandra

+0

おかげラムを参照してください。ヘルプ、それはキュウリのフックに関するものではなく、それはdomのデータフックの属性に関する、選択タグを持つDOMのコンテンツを参照してください、私は要素(by.dataHook( 'sometext'))として選択したいと思う。私たちは 'var helpers'コードに遭遇したときにエラーを受け取っています。 https://www.npmjs.com/package/protractor-helpers <選択したクラス= "CUI-ドロップダウンCUI-ドロップダウン - ショートNG-手付かずNG-有効なCUI-フォームfield__controlのNG-空ng- touched "data-hook =" quoting.finance.product "> – chandra

+0

' by byの要素ファインダはありません。そのような要素を見つけるためには、代わりにcssセレクタを使うべきです。あなたはまた、 'by.cssContainingText'を使うことができます。このリンクをどのように処理するかについては、このリンクを参照してください。分度器のattrubutesを選択してください - http://stackoverflow.com/questions/19599450/how-to-select-option-in-drop-down-protractorjs-e2e-tests –