3 回答

TA貢獻1821條經(jīng)驗 獲得超5個贊
在Node.js,我編寫了以下代碼,但它不是基于selenium的官方WebDriverJS,而是基于SauceLabs's WebDriver:WD.js和一個非常緊湊的圖像庫,名為EasyImage。
我只想強調(diào)你不能真正拍攝元素的截圖,但你應(yīng)該做的是首先,截取整個頁面的截圖,然后選擇你喜歡的頁面部分并裁剪特定部分:
browser.get(URL_TO_VISIT)
.waitForElementById(dependentElementId, webdriver.asserters.isDisplayed, 3000)
.elementById(elementID)
.getSize().then(function(size) {
browser.elementById(elementID)
.getLocation().then(function(location) {
browser.takeScreenshot().then(function(data) {
var base64Data = data.replace(/^data:image\/png;base64,/, "");
fs.writeFile(filePath, base64Data, 'base64', function(err) {
if (err) {
console.log(err);
}
else {
cropInFile(size, location, filePath);
}
doneCallback();
});
});
});
});
而cropInFileFunction就是這樣的:
var cropInFile = function(size, location, srcFile) {
easyimg.crop({
src: srcFile,
dst: srcFile,
cropwidth: size.width,
cropheight: size.height,
x: location.x,
y: location.y,
gravity: 'North-West'
},
function(err, stdout, stderr) {
if (err) throw err;
});
};
- 3 回答
- 0 關(guān)注
- 1109 瀏覽
添加回答
舉報