2014-02-26 142 views
0

有沒有一種方法可以爲Firefox和Chrome使用相同的測試代碼?抽象類,其中我可以爲所有瀏覽器驅動器執行的代碼段,而不重複的測試碼塊爲每個瀏覽器驅動器Selenium WebDriver瀏覽器抽象

例如代碼

變種搜索盒= ffDriver.findElement(webdriver.By.name ( 'q'));

爲每個瀏覽器驅動程序重複。

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 
} 

注意,在未來,你可能會想在你的代碼更結構,但上面的代碼應該工作正常。

相關問題