如何使用猎犬/ elixir进行屏幕截图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用猎犬/ elixir进行屏幕截图相关的知识,希望对你有一定的参考价值。

我正在尝试使用take_screenshot()(猎犬)拍摄屏幕截图。我只需要捕获失败时的屏幕截图。

我尝试过尝试/救援,但是即使断言失败,救援块也总是执行。

try do
   // some page elements action
   assert visible_page_text(), "Hello World"
rescue
  _ -> take_screenshot()
end

我也尝试过,

try do
   // some page elements action
   assert visible_page_text(), "Hello World"
catch
  _ -> take_screenshot()
end

我想要如果断言失败,则仅应截取屏幕截图。

答案

稍加修改,您的代码就会起作用:

try do
   // some page elements action
   assert visible_page_text() =~ "Hello World"
catch
  error ->
    take_screenshot()
    raise error
end

或将其转换为宏:

  # assert screenshot on failure
  defmacro assert_sof(assertion) do
    quote do
      try do
        assert unquote(assertion)
      rescue
        error ->
          take_screenshot()
          raise error
      end
    end
  end

并这样称呼:

assert_sof visible_page_text() =~ "Hello World"

以上是关于如何使用猎犬/ elixir进行屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

C语言 服务项进行全屏幕截图 但是截图后是黑屏怎么办?

如何截取基于文本的用户界面的屏幕截图?

如何使用c ++为最小尺寸的窗口制作屏幕截图

屏幕截图如何在应用商店中工作?

如何使用 MediaProjection API 从后台服务类中截取屏幕截图?

ubuntu系统如何屏幕截图