问题描述
我正在尝试获取特定的Web元素屏幕截图,但是当Chromedriver中的“移动”模式处于打开状态时,此方法将失败。否则,可以在桌面模式下完美运行。
移动元素屏幕截图放大并且位置错误(屏幕截图是从第一个像素而不是从指定位置element.Position
(不是0,0)裁剪的
{
IWebElement element = driver.FindElement(By.XPath(elementSelector));
var byteArray = ((ITakesScreenshot)driver).GetScreenshot().AsByteArray;
var screenshot = new Bitmap(new MemoryStream(byteArray));
var croppedImage = new Rectangle(element.Location,element.Size);
screenshot = screenshot.Clone(croppedImage,screenshot.PixelFormat);
return screenshot;
}
有人对如何解决这个问题有任何想法吗?
解决方法
所以答案是找到移动设备的像素比率,并乘以Rectangle()参数