2016-11-11 8 views
1

ブラウザが「デスクトップ」モード(デフォルト)であるかモバイルモードであるかに応じてヘルパー機能コードを実行したいと思っています。高さは常に800ですが、幅がどのように私は約束のgetSize戻りを解決したり、ブラウザが他の方法を幅決定かのどちらか600または1280分度器:現在のブラウザの幅を取得するにはどうすればよいですか?

login: function() { 
    var self = this; 
    var browserSize = browser.manage().window().getSize().then(function(size) { 
    // size is still an unresolved promise ;.; 
    return size; 
    }); 

    // Go to login page 
    browser.get(browser.baseUrl); // Will redirect authed users to the application 

    // If not at the login page, logout first 
    if (browser.getCurrentUrl() !== browser.baseUrl) { 
    if (browserSize.width == 600) { 
     self.mobileLogout(); 
    } else { 
     self.desktopLogout(); 
    } 
    } 

    self.loginPage.login(); 
} 

することができますか?それは、「ビューポート」を使用して行うことができ

+0

ラップ約束の.thenの内部全体をブロック?それが私のテストでやったことです。 – Daniel

答えて

0

実際には、この機能ではあまりにも多くの約束事が続いていました。私は幅と現在のURLを必要とするネストをしなければならなかったので、正しい時に物事が定義され使用可能になりました。

大雑把に取り組んコード:

login: function() { 
    var self = this; 

    browser.get(browser.baseUrl); 

    browser.getCurrentUrl().then(function(url) { 
    if(url !== browser.baseUrl) { 
     browser.manage().window().getSize().then(function(size) { 
     if (size.width == 600) { 
      self.mobileLogout(); 
     } else { 
      self.desktopLogout(); 
     } 
     } 
    } 

    self.loginPage.login(); 
    } 
} 
1

次を見ているあなたは、ブラウザウィンドウのサイズによって判断するモバイルおよびデスクトップの差別の問題にアプローチする必要はありません。

var width = window.innerWidth || document.body.clientWidth; 

は、しかし、私はいけない、このスクリプトを使用してブラウザを得ることができます

0

幅:代わりに、あなたはgetCapabilities()を介して設定能力ににアクセスすることができ、時の例を参照してください。これがあなたの問題に答えると思います。

1

あなたは非常に近くでした!これはちょうど私のために働いた:

var browserSizeOfMe = browser.driver.manage().window().getSize().then(function(size) { 
    console.log(" BROWSER SIZE "+ JSON.stringify(size)); 
    return size; 
}); 
関連する問題