12

için Selenium WebDriverJs ile ekran görüntülerini almak için doğru sözdizimi Selenium's webdriverjs ile webdriver testi çalıştırırken ekran görüntüsü almanın doğru yolu nedir?Düğüm

Tek başına bir selenyum sunucusuna başlıyorum ve ekran görüntüsünü almak için komutun selenyum sunucusuna kaydedildiğini görebiliyorum, ancak ekran görüntüsü kaydedilmiyor.

var webdriver = require('selenium-webdriver'); 
var driver = new webdriver.Builder().usingServer('http://localURL:4444/wd/hub').withCapabilities({'browserName': 'chrome'}).build(); 
driver.get([URL to webserver on my local machine]) 

driver.takeScreenshot("c:\\selenium_local_map\\out1.png"); 

cevap

22

alın ekran görüntüsü Base64 olarak kodlanmış png ile çözecek bir söz verir:

Kodum şudur. veri yazmak için aşağıdaki gibi bir şey yapmak gerekir:

function writeScreenshot(data, name) { 
    name = name || 'ss.png'; 
    var screenshotPath = 'C:\\selenium_local_map\\'; 
    fs.writeFileSync(screenshotPath + name, data, 'base64'); 
}; 

driver.takeScreenshot().then(function(data) { 
    writeScreenshot(data, 'out1.png'); 
}); 

Daha dokümantasyon here

+4

Bu müthiş bulunabilir, teşekkür ederim! Sadece kopyalamak ve yapıştırmak için gidiyoruz dost Node n00bs için eklemek istedim sonra hata ile ilgili ne yapacağını merak - satır 2 için aşağıdakileri ekleyin: var fs = require ('fs'); – kjc26ster

+1

Bu kodun çalışması için şu satırı eklemeniz gerekir: var fs = require ('fs'); "fs" nin ne hakkında olduğunu öğrenmek için biraz zaman harcadım. paketi kurmanız gerekiyor, o zaman bu çözüm işe yarayacak: _italic_ npm install fs _italic_ –