2017-04-20 1 views
0

Actuellement, j'utilise protractor et l'utilisation de l'objet page, donc il y a un fichier dans lequel j'obtiens la valeur d'un élément dans une variable, mais j'ai besoin d'appeler cette valeur dans un autre fichier.Utiliser la valeur d'une variable dans un autre fichier

vehiclePage.js

/*jshint esversion: 6 */ 

var basePage = require('./basePage.js'); 
var homePage = require('./homePage.js'); 

var VehiclePage = function() { 

    this.storeVehicleData = function() { 

     this.pessengersRuntValue = element(by.id('preview_ocupantes_runt')).getText(); 
    }; 
}; 

VehiclePage.prototype = basePage; // extend basePage... 

module.exports = new VehiclePage(); 

Maintenant, je dois utiliser la valeur des variables ci-dessus dans un autre fichier

checkoutPage.js

/*jshint esversion: 6 */ 

var basePage = require('./basePage.js'); 
var homePage = require('./homePage.js'); 

var CheckoutPage = function() { 

    this.getRuntValue = element(by.css('.mb10')); 

    this.compareValues = function() { 

     expect(this.getRuntValue.getText()).toContain(this.pessengersRuntValue); 
    }; 

}; 

CheckoutPage.prototype = basePage; // extend basePage... 

module.exports = new CheckoutPage(); 

Comment puis-je fais-le fonctionner?

Répondre

0

Une façon de le faire serait de passer un objet d'état aux deux pages.

var VehiclePage = require('./vehiclePage.js'); 
var CheckoutPage = require('./checkoutPage.js'); 

class StateStorage { 
    constructor(){ 
    this.savedVariable = null; 
    } 
} 

var state = new StateStorage(); 
var vehiclePage = new VehiclePage(state); 
var checkoutPage = new CheckoutPage(state); 

Ensuite, vous pouvez manipuler et accéder à l'état des deux nouvelles pages.

1

Si vous suivez Modèle de conception d'objet de page, je dirais que le test ne devrait pas être sur l'objet page. Je vais écrire quelque chose comme ça.

VehiclePage.js

var VehiclePage = function(){ 
    // if this is a browser testing something like this 
    browser.get('/vehicle'); 
}; 

VehiclePage.prototype = Object.create({}, { 
    runt: { 
    get: function(){ 
     return element(by.id('preview_ocupantes_runt')); 
    } 
    } 
}); 
module.export = VehiclePage; 

CheckOutPage.js

var CheckOutPage = function(){ 
    // if this is a browser testing something like this 
    browser.get('/checkout'); 
}; 

CheckOutPage.prototype = Object.create({}, { 
    runt: { 
    get: function(){ 
     return element(by.css('.mb10')); 
    } 
    } 
}); 
module.export = CheckOutPage; 

TheTest.js

var VehiclePage = require('VehiclePage'); 
var CheckOutPage = require('CheckOutPage'); 


describe('testing something',() => { 
    var vehicle = new VehiclePage(); 
    var checkout = new CheckOutPage(); 

    it('should contain',() => { 
    expect(checkout.runt.getText()).toContains(vehicle.runt.getText()); 
    }); 

});