2014-02-26 5 views
0

Firefox와 크롬에 동일한 테스트 코드를 사용할 수 있습니까? I 예 코드 각 브라우저 드라이버Selenium WebDriver 브라우저 추상화

위한

VAR의 검색 창 = ffDriver.findElement를 테스트 코드의 블록을 반복하지 않고, 모든 브라우저 드라이버 코드의 일부를 실행할 수 추상화의 종류 (webdriver.By.name ('큐'));

각 브라우저 드라이버에 대해 반복됩니다.

var assert = require('assert'), 
    test = require('selenium-webdriver/testing'), 
    webdriver = require('selenium-webdriver'), 
    SeleniumServer = require('selenium-webdriver/remote').SeleniumServer; 

var server = new SeleniumServer('selenium-server-standalone-2.39.0.jar', { 
    port: 4444 
}); 

server.start(); 
var ffDriver = new webdriver.Builder() 
    .usingServer(server.address()) 
    .withCapabilities(webdriver.Capabilities.firefox()) 
    .build(); 

var chromeDriver = new webdriver.Builder() 
    .withCapabilities(webdriver.Capabilities.chrome()) 
    .build(); 
test.describe('Google Search', function() { 

    test.it('should have a query box that you can type in ff', function() { 
    ffDriver.get('http://www.google.com'); 
    var searchBox = ffDriver.findElement(webdriver.By.name('q')); 
    searchBox.sendKeys('webdriver'); 
    searchBox.getAttribute('value').then(function (value) { 
     assert.equal(value, 'webdriver'); 
    }); 

    ffDriver.quit(); 
    }); 
    test.it('should have a query box that you can type in chrome', function() { 

    chromeDriver.get('http://www.google.com'); 
    var searchBox = chromeDriver.findElement(webdriver.By.name('q')); 
    searchBox.sendKeys('webdriver'); 
    searchBox.getAttribute('value').then(function (value) { 
     assert.equal(value, 'webdriver'); 
    }); 

    chromeDriver.quit(); 
    }); 
}); 

답변

0

예.

var chromeDriver = //Create your chromeDriver here 
var ffDriver = //Create your ffDriver here 

var drivers = [chromeDriver, ffDriver];//This creates an array of all of the drivers 
for (var i = 0; i< drivers.length; i++){//Run the following block of code for each driver 
    var driver = drivers[i];//Assign the driver variable 
    driver.get('http://www.google.com');//Use the driver variable. 
    //The rest of the automation code 
} 

참고, 향후 즉, 당신은 아마 당신의 코드에 더 많은 구조를 원하는거야,하지만 위의 코드는 잘 작동합니다.