2016-04-22 6 views
1

Derzeit versuche ich emulieren Chrome Browser auf mobilen Geräten (z. B. Apple iPad \ Samsung Galaxy). Es funktioniert gut, wenn hardcoded deviceName in conf.js übergeben werden.wie übergeben DeviceName in conf.js über die Befehlszeile vor dem Starten von Webdriver-Instanz

Aber ich möchte Geräte am fliegen ändern. Ich habe versucht, deivceName Parameter in der Befehlszeile übergeben, aber ohne Glück. Es hat nicht Wert in conf.js aktualisieren, aber nach WebDriver Instanz gestartet wird, ich sehe, aktualisiert param Werte:

protractor mobiledevice.js --params.device="Apple iPhone 5" 

-

"use strict"; 

var config = require('./conf.js').config; 

config.params = { 
    device: 'Google Nexus 6' 
} 


config.capabilities = { 
    'chromeOptions': { 
     'mobileEmulation': { 
      'deviceName': config.params.device 
     } 
    } 
}; 

exports.config = config; 

Frage: Wie emulieren I-Device, das als Parameter übergeben wird durch Befehlszeile?

Antwort

1

Sie können die getMultiCapabilities function definieren:

exports.config = { 
    getMultiCapabilities: function() { 
     return [{ 
      chromeOptions: { 
       mobileEmulation: { 
        deviceName: this.params.device 
       } 
      } 
     }]; 
    }, 

    // ... 
}; 

dann den device Parameter übergeben:

protractor mobiledevice.js --params.device="Apple iPhone 5" 
Verwandte Themen