Selenium ChromeDriver 制作空白截图

Selenium ChromeDriver 制作空白截图

在詹金斯中,截取的屏幕截图是空白或无效的,如下例所示:

詹金斯截图

也许有人知道这可能是什么问题?本地一切正常

WebDriver.ChromeDriver.win32 版本 - 2.30.0

Selenium.WebDriver 版本 - 3.4.0

代码:

 try
        {
            var screenshotFileName = _filePath + ".png";
            ((ITakesScreenshot) Extensions.Driver).GetScreenshot().SaveAsFile(screenshotFileName, ScreenshotImageFormat.Png);
            Log.Error("Screenshot has been taken: " + screenshotFileName);
        }
        catch (Exception ex)
        {
            Log.Warning("TakeScreenshot failed: " + ex.Message);
        }

答案1

这个问题似乎以前发生过。检查一下:https://bugs.chromium.org/p/chromedriver/issues/detail?id=476

这可能是新版 chromedriver 2.30 中的错误。我遇到了同样的问题,解决方法是通过远程桌面连接连接到 VM。只有当您远程使用 selenium 并且没有人通过 RDC 连接到节点时才会出现问题。

希望下一个 chromedriver 版本可以修复这个问题。

答案2

这似乎是 Chrome 59 本身的一个问题:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1844&can=2&start=0&num=100&q=screenshots&colspec=ID%20Status%20Pri%20Owner%20Summary&groupby=&sort=-id

我尝试恢复到 Chromedriver 2.29,但得到了相同的结果(空白屏幕截图)。

答案3

Jenkins - RobotFramework - Selenium2Library:生成空白截图,将 Chrome 从 v.59 降级到 v.58 后,问题解决,截图按预期生成。旧版本的 Chrome:http://www.slimjet.com/chrome/google-chrome-old-version.php

答案4

就我而言,原因是我在无头模式下运行 selenium,因此我禁用了“--headless”参数,现在它可以正常工作

options = webdriver.ChromeOptions()
### disable this
#options.add_argument('--headless')

相关内容