首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Xamarin.UITest截图

无法使用Xamarin.UITest截图
EN

Stack Overflow用户
提问于 2019-09-25 11:35:00
回答 1查看 465关注 0票数 1

我在Windows7上运行Xamarin.UITest测试,使用安道尔仿真器和安卓设备。在这两种情况下,我都无法拍摄截图。

我正在初始化这样的东西:

代码语言:javascript
复制
ConfigureApp
    .Android
    .ApkFile(apkPath)
    .EnableLocalScreenshots()
    .StartApp();

像这样截图:

代码语言:javascript
复制
App.Screenshot("App Started");

但是,当调用App.Screenshot时,我会得到以下异常:

代码语言:javascript
复制
System.Exception : Error while performing Screenshot("App Started")
  ----> System.Exception : Failed to create C:\Users\USERNAME\.nuget\packages\xamarin.uitest\3.0.3\lib\net45\screenshot-1.png. You may need to set the working directory, which can be done using System.IO.Directory.SetCurrentDirectory().
   at Xamarin.UITest.Utils.ErrorReporting.With[T](Func`1 func, Object[] args, String memberName)
   at Xamarin.UITest.Android.AndroidApp.Screenshot(String title)
   at ACME.App.UITest.BaseUITest.BeforeEachTest() in C:\ACME\ACME.Application.UITest\BaseUITest.cs:line 29
   at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.GetResult() in D:\a\1\s\src\NUnitFramework\framework\Internal\TaskAwaitAdapter.cs:line 99
   at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke) in D:\a\1\s\src\NUnitFramework\framework\Internal\AsyncToSyncAdapter.cs:line 60
   at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUpOrTearDownMethod(TestExecutionContext context, MethodInfo method) in D:\a\1\s\src\NUnitFramework\framework\Internal\Commands\SetUpTearDownItem.cs:line 111
   at NUnit.Framework.Internal.Commands.SetUpTearDownItem.RunSetUp(TestExecutionContext context) in D:\a\1\s\src\NUnitFramework\framework\Internal\Commands\SetUpTearDownItem.cs:line 68
   at NUnit.Framework.Internal.Commands.SetUpTearDownCommand.<>c__DisplayClass0_0.<.ctor>b__0(TestExecutionContext context) in D:\a\1\s\src\NUnitFramework\framework\Internal\Commands\SetUpTearDownCommand.cs:line 48
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__0() in D:\a\1\s\src\NUnitFramework\framework\Internal\Commands\BeforeAndAfterTestCommand.cs:line 58
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action) in D:\a\1\s\src\NUnitFramework\framework\Internal\Commands\BeforeAndAfterTestCommand.cs:line 73
--Exception
   at Xamarin.UITest.Android.JavaScreenshotTaker.Screenshot(String title)
   at Xamarin.UITest.Android.AndroidApp.<>c__DisplayClass84_0.<Screenshot>b__0()
   at Xamarin.UITest.Utils.ErrorReporting.With[T](Func`1 func, Object[] args, String memberName)

查看生成的日志文件,我看到:

代码语言:javascript
复制
Could not take screenshot
java.io.IOException: EOF
    at com.android.ddmlib.AdbHelper.read(AdbHelper.java:874)
    at com.android.ddmlib.AdbHelper.getFrameBuffer(AdbHelper.java:333)
    at com.android.ddmlib.CalabashAdbHelper.getFrameBuffer(Unknown Source)
    at com.android.ddmlib.CalabashDevice.getScreenshot(Unknown Source)
    at sh.calaba.screenshot.ScreenshotTaker.takeScreenshot(Unknown Source)
    at sh.calaba.screenshot.ScreenshotTaker.main(Unknown Source)

我试过的是:

使用(C:\Users\USERNAME\.nuget\packages\xamarin.uitest\...)

  • Giving设置不同的目录--这似乎被忽略了,因为我在异常中看到了相同的路径--不管effect

  • Ensuring组对path C:\Users\USERNAME\.nuget\packages\xamarin.uitest\3.0.3\lib\net45\的访问--没有effect

  • Ensuring测试可以将文件写入上面的路径--它们可以,所以不应该是对Xamarin.UITest,3.0.4-dev1的最新开发的权限issue

  • Updating --相同的结果
EN

回答 1

Stack Overflow用户

发布于 2020-03-06 20:31:33

这个星期我也遇到了同样的问题,这是为了避免在应用程序上截图而进行安全改进。如果您这样做(https://forums.xamarin.com/discussion/96818/disable-the-screenshot-functionality-in-xamarin-forms-application),这可能就是问题所在。只要一个#if!调试,您就可以修复它。

希望能帮助别人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58097456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档