Xamarin.UITest 屏幕截图位置



我在Xamarin.UITest上遇到了问题,特别是屏幕截图功能。它没有按预期工作。

我正在尝试将"创建"屏幕截图复制到另一个目录,但出现以下错误:

消息:系统.IO.文件未找到异常:找不到文件 'C:\程序文件 (x86(\Microsoft 视觉对象 工作室\2017\企业\公共7\IDE\屏幕截图-1.png'。

我正在使用这段代码来复制图像文件:

var screen = app.Screenshot("Welcome screen.");
screen.CopyTo(@"C:UserssomeuserDesktopscreenshotTest.png");

如何为屏幕截图指定第一个路径/位置,因为原始路径可能需要管理员权限,而我没有。

App.Screenshot()一起保存的屏幕截图位于测试项目的目录中:第一个屏幕截图名为screenshot-1的文件夹MyTestProject"binDebug

问题的一半解决方案:我将 NUnit 从3.11.0降级到2.7.0,所以它工作正常。

使用 MoveTo(( 而不是 CopyTo((。

var screenshot = app.Screenshot($"{DateTime.Now}_{platform}");
screenshot.MoveTo($@"{Destination}{screenshot.Name}.{screenshot.Extension}");

我的截图正在保存到 C:\Users\username\AppData\Local\Temp

试试这个代码

[TearDown]
public void Teardown()
{
SaveScreenshotIfTestFails();
}
private void SaveScreenshotIfTestFails()
{
if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed)
{
var testName = TestContext.CurrentContext.Test.Name;
var filename = $"{testName}.png";
var file = app.Screenshot(testName);
var dir = file.DirectoryName;
File.Delete(dir + "\" + filename);
file.MoveTo($"{testName}.png");
}
}

屏幕截图将保存到当前目录。通过 Directory.SetCurrentDirectory 更改它。

最新更新