在詹金斯中,截取的屏幕截图是空白或无效的,如下例所示:
也许有人知道这可能是什么问题?本地一切正常
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 本身的一个问题:
我尝试恢复到 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')