2016-04-22 10 views
1

現在、私はモバイルデバイス(たとえばApple iPad \ Samsung Galaxy)でChromeブラウザをエミュレートしようとしています。これは、ハードコードされたdeviceNameがconf.jsで渡されたときにうまく動作します。webdriverインスタンスを起動する前にconf.jsでconf.jsを渡す方法

しかし、私は機上でデバイスを交換したいと思います。私はdevceNameパラメータをコマンドラインで渡してみましたが、運がありません。それはconf.jsで値を更新しなかったが、webdriverをインスタンスが起動された後、私は更新のparamの値を参照してください。

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; 

質問:どのように私は、デバイスをエミュレートするかによって、パラメータとして渡されますコマンドライン?

答えて

1

あなたが定義することができgetMultiCapabilities function

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

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

    // ... 
}; 

はその後deviceパラメータを渡します

関連する問題