比如抓验证码、小姐姐之类的,有些如果是base64的简单
var findQr = driver.findElement(By.xpath("//img[@aria-label='二维码']"));
findQr.getAttribute("src").then(function(data){
console.log(data);
});
如果不是的话,下载也行(本博客前一篇),或者用下面这截图后裁剪方法。
screenshotElement: function (driver, locator) {
return new Promise(async (resolve, reject) => {
try {
let base64Image = await driver.takeScreenshot();
let decodedImage = new Buffer(base64Image, "base64");
let dimensions = await driver.findElement(By.xpath(locator)).getRect();
let xLoc = xext + dimensions.x;
let yLoc = yext + dimensions.y;
let eWidth = eleWidth + (xLoc * 2 - 300);
let eHeight = eleHeight + yLoc;
let image = await Jimp.read(decodedImage);
image.crop(xLoc, yLoc, eWidth, eHeight).getBase64(Jimp.AUTO, (err, data) => {
if (err) {
console.error(err)
reject(err)
}
imgConvert.fromBuffer({
buffer: data,
output_format: "jpg"
}, function (err, buffer, file) {
if (!err) {
let croppedImageDataBase64 = buffer.toString('base64')
resolve(croppedImageDataBase64)
}
else {
console.error(err.message);
reject(err)
}
})
});
} catch (err) {
console.error(err.message);
reject(err)
}
})
},
引用自
https://stackoverflow.com/questions/40958132/selenium-webdriver-nodejs-how-to-crop-an-image