12

पर स्क्रीनशॉट लेने के लिए सही वाक्यविन्यास Selenium's webdriverjs के साथ वेबड्राइवर परीक्षण चलाते समय स्क्रीनशॉट लेने का सही तरीका क्या है?सेलेनियम के WebDriverJs के साथ नोड

मेरे पास स्टैंड-अलोन सेलेनियम सर्वर शुरू हुआ है और मैं सेलेनियम-सर्वर पर स्क्रीनशॉट लॉग इन करने के लिए कमांड देख सकता हूं, लेकिन स्क्रीनशॉट सहेजा नहीं जा रहा है।

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"); 

उत्तर

22

लें स्क्रीनशॉट एक वादा है कि एक Base64 इनकोडिंग png साथ हल होगा रिटर्न:

मेरे कोड निम्नलिखित है। डेटा लिखने के लिए, आप निम्नलिखित की तरह कुछ करने के लिए की आवश्यकता होगी:

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'); 
}); 

अधिक प्रलेखन here

+4

यह अद्भुत है पाया जा सकता है, धन्यवाद! बस साथी नोड n00bs के लिए जोड़ना चाहते थे जो इसे कॉपी और पेस्ट करने जा रहे हैं, फिर आश्चर्यचकित त्रुटि के बारे में क्या करना है - पंक्ति 2 में निम्नलिखित जोड़ें: var fs = requ ('fs'); – kjc26ster

+1

इस कोड को काम करने के लिए, आपको निम्न पंक्ति शामिल करने की आवश्यकता है: var fs = requ ('fs'); मैंने कुछ समय बिताया कि यह जानने के लिए कि "एफएस" क्या था। आपको पैकेज को स्थापित करना होगा, तो यह समाधान काम करेगा: _italic_ npm इंस्टॉल fs _italic_ –

संबंधित मुद्दे