TypeError: Cannot read property 'Konstruktor' undefined

vegan@vegan:~/hb-x/gateway$ Schluck Winkelmesser [14:44:36]
Mit gulpfile ~/hb-x/gateway/gulpfile.js [14:44:36]
Ab 'Winkelmesser'... Mit ChromeDriver direkt... [launcher]
Läuft 1 Instanzen von WebDriver Gestartet
- User wird nicht angemeldet, also versuchen, sich in x - User nicht eingeloggt, so versuchen, sich in der xy - User nicht eingeloggt, so versuchen, sich in

/home/vegan/hb-x/gateway/node_modules/selenium-webdriver/lib/goog/../webdriver/Versprechen.js:2965
return fn.Konstruktor.name === 'GeneratorFunction';
^ TypeError: Cannot read property 'Konstruktor' undefined
am Objekt.Versprechen.ControlFlow.goog.defineClass.goog.defineClass.Versprechen.isGenerator
(/home/vegan/hb-x/gateway/node_modules/selenium-webdriver/lib/goog/../webdriver/Versprechen.js:2965:12)

Dies ist meine Klasse, wo die Fehler

'use strict';

var CommonPageObject = function() {

    this.baseUrl = "http://localhost:8080";

    this.product = element.all(by.css('[data-tab-item="product"]')).first();



    this.loginTextLocator = element(by.css('button.layout-align-xs-start-start'));
    this.loginPageHeader = element(by.css('header'));

    this.loginUsername = element(by.model('vm.model.username'));
    this.loginPassword = element(by.model('vm.model.password'));
    this.loginButton = element(by.css('[aria-label="login.button"]'));

    this.isLoggedIn = function () {
        this.get();

        var self = this;

        this.loginTextLocator.isPresent().then(function(isElementDisplayed){
            if(isElementDisplayed){
                console.log('- User not logged in, so trying to log in');

                self.ctaLogin('cta', 'M0ha44bOw-36SMm');
            }
            else{
                console.log('- User already logged in');
            }
        })
    };

    this.get = function() {
        browser.get(this.baseUrl);
    };

    this.ctaLogin = function(name,password) {

        this.get();//necessary?
        browser.driver.wait(protractor.until
            .loginPageHeader);

        this.setName(name);
        this.setPassword(password);

        this.loginButton.click();
    };

    this.setName = function(name) {browser.sleep(5000);console.log('x- User not logged in, so trying to log in');
        this.loginUsername.clear().sendKeys(name);

    };

    this.setPassword = function(password) {browser.sleep(5000);console.log('xy- User not logged in, so trying to log in');
        this.loginPassword.clear().sendKeys(password);

    };

};

module.exports = CommonPageObject;

diese Klasse nennt es

'use strict';


var LogoutPageObject = require('./logoutControllerPageObject');

describe(
    'Logout module', function () {

        var logoutPageObject = new LogoutPageObject();

        beforeEach(
            function(){
                console.log('Logout Test starting');
                logoutPageObject.isLoggedIn();

dies ist aus promise.js wo der Fehler ist lin 2965

promise.isGenerator = function(fn) {
  return fn.constructor.name === 'GeneratorFunction';
};

Habe ich auch etwas zurückgeben, aber noch gut derselben

this.isLoggedIn = function () {
        this.get();

        var self = this;

        this.loginTextLocator.isPresent().then(function(isElementDisplayed){
            if(isElementDisplayed){
                console.log('- User not logged in, so trying to log in');

                self.ctaLogin('cta', 'M0ha44bOw-36SMm');
            }
            else{
                console.log('- User already logged in');
            }
        });
        return null;
    };

ist es wahrscheinlich, da dieser

this.isLoggedIn = commonPageObject.isLoggedIn();

was kann ich tun dafür?

  • Wissen Sie, was #loginTextLocator.isPresent (am CommonPageObject#isLoggedIn - Methode) funktioniert? Ich denke, das ist mit dem Versprechen err?
  • ja vielleicht isElementDisplayed änderte ich dies !isElementDisplayed und es gab nicht diese Fehler.
  • aber die Ausgabe verändert, um Benutzer bereits angemeldet als erwartet(es ist nicht eingeloggt, aber ich setze "!" . SO scheint es, ist es wrking
  • Nope, ich Rede von #loginTextLocator.isPresent. Sie konnten zeigen es
  • es ist eine Bibliothek, die Methode, die ich nicht definieren. Winkelmesser-Methode. innerhalb der Klasse, wie das ElementFinder.der Prototyp.isPresent = function() {
InformationsquelleAutor mark | 2016-11-23
Schreibe einen Kommentar