5
我試圖使用selenium服務器網格並行運行多個命令。 這是我的第一個測試代碼:向Selenium Webdriver網格發出並行請求
var webdriver = require('selenium-webdriver');
for(var u = 0; u < 3; u++) {
makeScreenshot('foo/test' + u + '.png');
}
function makeScreenshot(path) {
var driver = new webdriver.Builder().forBrowser('firefox').usingServer('http://someurl:44111/wd/hub/').build();
console.log('Get');
driver.get('http://www.somepage.com').then(function() {
console.log('Screenshot');
driver.takeScreenshot().then(function(data){
console.log(path);
//var decodedImage = new Buffer(data, 'base64')
driver.quit();
});
});
}
這就是結果:
Get
Get
Get
Screenshot
foo/test0.png
Screenshot
foo/test1.png
Screenshot
foo/test2.png
「獲取」,立即出現在序列中, 「driver.get」 創建一個承諾。我的想法是,這三個請求是異步的,因此幾乎同時出現。但正如你在屏幕截圖中看到的那樣,它們將會一個接一個地完成。 網格絕對有足夠的硒實例,爲什麼驅動程序並行工作? 在我看來,「新的webdriver.Builder()」創建一種不工作異步,但等待先前的請求完成的單身!?
感謝您的幫助!
不錯,謝謝!它現在看起來非常異步,沒有注意到這個功能。我想知道它現在是否在集線器上的selenium實例上運行並行測試,或者負載平衡是否按預期工作。但我會發現;) – Gibbonson