【问题标题】:Unable to take screenshot in selenium webdriver无法在 selenium webdriver 中截屏
【发布时间】:2019-12-28 16:41:51
【问题描述】:

我正在截屏:

但每次它都会给我以下异常:

OpenQA.Selenium.WebDriverException:对远程的 HTTP 请求 URL 的 WebDriver 服务器 http://localhost:49644/session/bc1237c6e7484d4c9686555254d3ec70/screenshot 60 秒后超时。 ---> System.Net.WebException:请求 was aborted:操作已超时。在 System.Net.HttpWebRequest.GetResponse() 在 OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) --- 内部异常堆栈跟踪结束 --- at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo 请求信息)在 OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令 commandToExecute) 在 OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(命令 commandToExecute) 在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2 参数)在 OpenQA.Selenium.Remote.RemoteWebDriver.GetScreenshot() 在 specflowPjt.Hooks.TakeScreenshot()

我在硒的 AddScreenshot() 方法中遇到了上述异常。

我使用的代码在任何地方都可以正常工作,但只在这个地方给出异常。有人请告诉我这背后的可能原因以及最后如何截取此屏幕的屏幕截图。

一些可以帮助您解决此问题的指针:

  1. 我试图捕捉的屏幕处于加载状态。 (能否截取正在加载的画面?)

  2. 我的网站很慢。

  3. 我正在远程机器上工作。

我们会非常重视任何帮助。谢谢

【问题讨论】:

  • 请添加您的代码并告诉我们您使用的是什么编程语言(C# 对吗?)。

标签: selenium selenium-webdriver screenshot


【解决方案1】:

可能的原因在 -

  1. 我正在远程机器上工作。

我建议自己编写截屏方法或采用以下方法:

 public void make_screenshot(String filename){

        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
       try {
        FileUtils.copyFile(scrFile, new File("test-output\\" +filename +".png").getAbsoluteFile());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

也许这会起作用,你会发现它很有帮助。

【讨论】:

    【解决方案2】:

    远程机器 - 我们在远程机器上测试 selenium 时遇到了同样的困难

    关于截图问题。您通常需要执行三个步骤:

    第一步:

    将 Web 驱动程序对象转换为 TakeScreenshot

    TakesScreenshot scrShot =((TakesScreenshot)webdriver);
    

    第二步:

    调用getScreenshotAs方法创建图片文件

    File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
    

    第 3 步:

    将文件复制到指定位置:

    更多信息见链接:How to take Screenshot - Guru99

    这里已经有讨论了:How to take screenshots

    但最好在此处插入您的代码。不仅仅是错误信息。因为从这一点开始,也许您还应该插入一个等待命令(请参阅:ToolsQA),因为您的错误消息是说它在 60 秒后超时...

    希望这些链接对您有所帮助。祝测试愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 2020-12-30
      • 2017-02-12
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多