2016-05-05 9 views
4

以下のような分度器検査があります。それは正常に動作します。しかし、私のテストはグリッドタイルのピクセル位置に敏感なので、ブラウザをフルスクリーンに開くコードをいくつか追加する必要があります。これはどうすればできますか?分度器テストを実行する前にブラウザのサイズを設定するにはどうすればよいですか?

describe('DragAndDrop Test', function() { 
require('protractor'); 
require('jasmine-expect'); 


beforeAll(function() { 
    context = new Context(); 
    context.get(); 
    browser.waitForAngular(); 
    browser.driver.manage().window().maximize(); 

}); 

it('should drag and drop Application Experience tile', function() { 

    //a = angular.element(document).find('h3')[1] 
    //target is where we are dragging the box to. Box is the Box 
    var target = { x: 300, y: 50 }; 
    var box = element(by.cssContainingText('h3', 'Application Experience')); 
    var infoSpot = element(by.cssContainingText('h3', 'Application Experience')); 


    //scope is going to hold the scope variables that tell us where the box is located 
    //get the standardItems Scope 


    box.evaluate('dashboards').then(function(scope) { 
     //make sure the box we are using is initially set in column 0 and Row 0 
     expect(scope['1'].widgets[0].col).toEqual(0); 
     expect(scope['1'].widgets[0].row).toEqual(0); 
    }); 

    //drag and drop the box somewhere else. 
    browser.actions().dragAndDrop(box, target).perform(); 
    browser.waitForAngular(); 
    browser.driver.sleep(5000); 

    //get the updated scope 
    box.evaluate('dashboards').then(function(scope) { 
     //test to see that the box was actually moved to column 1 and row 0 
     expect(scope['1'].widgets[0].col).toEqual(1); 
     expect(scope['1'].widgets[0].row).toEqual(0); 
    }); 
}); 
}); 

var Context = function() { 
this.ignoreSynchronization = true; 
    //load the website 
    this.get = function() { 
     browser.get('http://127.0.0.1:57828/index.html#/dashboard'); 
    }; 
}; 

答えて

1

あなたは既にすべてのテストが実行される前にブラウザを最大化するあなたのbeforeAll機能、このラインを持っている:

browser.driver.manage().window().maximize(); 

しかし、いくつかのオペレーティングシステム上で、Chromeブラウザのウィンドウを最大化しないだろう水平方向、垂直方向のみ。

A)例えば、いくつかの事前に定義された値に明示的に幅を設定します:

browser.driver.manage().window().setSize(1200, 768); 

b)はJavascriptの機能を持つ画面の解像度を取得し、それに応じてウィンドウサイズを設定する2つのオプションがあります。

var width = GET_WIDTH; 
var height = GET_HEIGHT;  
browser.driver.manage().window().setSize(width, height); 
2

私はあなたの設定でこれを行うことをお勧めします。

onPrepare: function() { 
browser.manage().window().setSize(1600, 1000); 
} 

or 

onPrepare: function() { 
browser.manage().window().maximize(); 
} 
関連する問題