2016-02-23 29 views
17

के लिए टेस्टेबिलिटी नहीं मिल सका। मैं प्रोटैक्टर 3.1.1 और एंगुलर 2 के साथ एक सरल हैलोवर्ल्ड नमूना चला रहा हूं, लेकिन यह बात मुझे बताती है कि तत्व के लिए टेस्टेबिलिटी नहीं मिल सका। मैं त्रुटि के बारे में कुछ जानकारी के लिए इंटरनेट googled, लेकिन कोई किस्मत, यह अपवाद की एक नई तरह है कि इतने सारे नहीं सामना करना पड़ा है हो रहा है।प्रोटैक्टर 3.1.1 + कोणीय 2: तत्व

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'my-app', 
    template: '<h1>My First Angular 2 App</h1>' + 
    '<h2>{{myName}}</h2>' + 
    '<input id="someId" [(ngModel)]="myName"/>' 
}) 
export class AppComponent { 
    myName = 'Joe'; 
} 

यह कोणमापक कॉन्फ़िग फ़ाइल है:

इस घटक मैं उपयोग कर रहा हूँ है

exports.config = { 
    framework: 'jasmine', 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: [ 
    'e2e/*.js' 
    ], 
    baseUrl: 'http://localhost:3000' 
}; 

और यह कोणमापक परिदृश्य मैं चला रहा हूँ है:

describe('angularjs homepage', function() { 
    it('should say my name', function() { 
     browser.get('/index.html'); 
     var greeting = element(by.id('someId')); 
     expect(greeting.getAttribute('value')).toEqual('Joe'); 
    }); 
}); 

वेबपृष्ठ सामान्य रूप से टेम्पलेट HTML के साथ लोड होता है, लेकिन प्रोटैक्टर सोचता है कि परिणामस्वरूप वेबपृष्ठ एक नहीं है कोणीय वेबपृष्ठ, अब, वह क्यों है? और जाहिर है, अगर मैं परिणामस्वरूप वेबपृष्ठ का निरीक्षण करता हूं, तो यह केवल संसाधित कोणीय कोड का परिणामस्वरूप HTML है, क्या मैं कुछ गलत कर रहा हूं?

यह पूरा त्रुटि है:

Error: Failed: Error while waiting for Protractor to sync with the page: "Could not find testability for element." 

मैं एक साधारण परीक्षण के रूप में चलाते हैं कोणमापक ट्यूटोरियल का कहना है कि इस डेमो पृष्ठ का उपयोग कर: http://juliemr.github.io/protractor-demo/, यह काम करता है के रूप में की उम्मीद है, तो कुछ मेरी Angular2 कोड है कि कोणमापक इसके साथ काम नहीं कर रहा है, लेकिन मैं पहले ही विचारों से बाहर हो गया हूं, कोई भी जानता है कि क्या हो रहा है?

अद्यतन 23-02-2016

के बाद कुछ शोध मुझे लगता है कि Angular2 साथ कोणमापक उपयोग करने के लिए मिल गया है, वहाँ कॉन्फ़िग फ़ाइल में एक अतिरिक्त विन्यास लाइन होनी चाहिए:

useAllAngular2AppRoots: true 

ऐसी है कि conf .js अब लगता है कि:

exports.config = { 
    framework: 'jasmine', 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: [ 
    'e2e/*.js' 
    ], 
    baseUrl: 'http://localhost:3000', 
    useAllAngular2AppRoots: true 
}; 

या के साथ स्पष्ट रूप से एप्लिकेशन जड़ में शामिल हैं:

rootElement: 'my-app' 

इस अद्यतन के बाद सब एक तत्व by.id() काम ठीक लगता है कहता है, लेकिन अगर आप लोकेटर by.model() या by.binding() से किसी का उपयोग करने के लिए बहाना, यह बस संदेश UnknownError: unknown error: angular is not defined साथ असफल हो जायेगी। कोई विचार क्यों नहीं।

+0

एक ही समस्या, मुझे लगता है मैं 'इस्तेमाल करेंगे by.id()' या 'by.css()' पल के लिए ... – foch

+1

आप बस मुझे बहुत परेशानी दोस्त बचाया! –

+0

ने भी मेरे लिए इसे ठीक किया! आपको अपडेट को उत्तर के रूप में पोस्ट करना चाहिए ताकि अन्य आसानी से समाधान ढूंढ सकें। – OJ7

उत्तर

2

जाहिर है वहाँ कि प्रतिबद्ध में एक बग है। Check this!

लेकिन आप का उपयोग कर अपने परीक्षण चला सकते हैं अब के लिए browser.executeScript('window.name = "NG_ENABLE_DEBUG_INFO!"');

संबंधित मुद्दे