【问题标题】:How to take specific element screenshot in Selenium MOBILE webdriver?如何在 Selenium MOBILE webdriver 中截取特定元素的屏幕截图?
【发布时间】:2020-09-30 17:25:38
【问题描述】:

我正在尝试截取特定的 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;
        }

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: selenium image-processing selenium-chromedriver webpage-screenshot mobileemulation


    【解决方案1】:

    所以答案是找到移动设备像素比,然后乘以 Rectangle() 参数

    How to calculate device pixel ratio

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 2016-06-30
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      相关资源
      最近更新 更多