В настоящее время я использую Specflow и Selenium для автоматизации моего контроля качества.После каждого теста он генерирует отчет о степени и, когда во время теста возникает какая-либо ошибка, он делает снимок экрана и помещает ссылку на него прямо под сообщением, но когда я нажимаю на ссылку, он ничего не делает.Поэтому я должен щелкнуть по нему правой кнопкой мыши и открыть его на новой вкладке.Изображение кодируется на C # в формате base64.Может кто-нибудь сказать мне, как я могу сделать скриншот открытым на новой вкладке обычным щелчком левой кнопкой мыши?
Вот мой код:
else if (ScenarioContext.Current.TestError != null)
{
if (stepType == "Given")
{
var gDriverHook = AssertDriverHook(DriverHook);
CapturaTela.ErrorScreenshot(AssertDriverHook(gDriverHook));
_scenario.CreateNode<Given>(ScenarioStepContext.Current.StepInfo.Text).Fail(ScenarioContext.Current.TestError.Message);
_scenario.CreateNode<Given>("Detalhes:").Fail("<a href =" + "data:image/jpeg;base64," + CapturaTela.ErrorScreenshot(gDriverHook) + ">" + "Clique Aqui para ver a Imagem" + "</a>");
}
else if (stepType == "When")
{
var gDriverHook = AssertDriverHook(DriverHook);
CapturaTela.ErrorScreenshot(AssertDriverHook(gDriverHook));
_scenario.CreateNode<When>(ScenarioStepContext.Current.StepInfo.Text).Fail(ScenarioContext.Current.TestError.Message + " \n \n <a href =" + "data:image/jpeg;base64," + CapturaTela.ErrorScreenshot(gDriverHook) + ">" + "Clique Aqui para ver a Imagem" + "</a>");
}
else if (stepType == "Then")
{
var gDriverHook = AssertDriverHook(DriverHook);
CapturaTela.ErrorScreenshot(AssertDriverHook(gDriverHook));
_scenario.CreateNode<Then>(ScenarioStepContext.Current.StepInfo.Text).Fail(ScenarioContext.Current.TestError.Message);
_scenario.CreateNode<Then>("Detalhes:").Fail("<a href =" + "data:image/jpeg;base64," + CapturaTela.ErrorScreenshot(gDriverHook) + ">" + "Clique Aqui para ver a Imagem" + "</a>");
}
}
И вот где мой метод Screenshot:
public static string ErrorScreenshot(IWebDriver pDriver)
{
ITakesScreenshot screenshotDriver = pDriver as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
string base64 = screenshot.AsBase64EncodedString.Replace("\"\"", "");
string ErrDirectory = "C:/Screenshot/err/";
Directory.CreateDirectory(ErrDirectory);
ErrDirectory = ErrDirectory + "Err_" + DateTime.Now.ToString("dd-MM-yyyy_HH-mm-ss");
screenshot.SaveAsFile(ErrDirectory, ScreenshotImageFormat.Jpeg);
return base64;
}
Вот ссылка, по которой я пытаюсь нажать:
![Here's the link I'm trying to click](https://i.stack.imgur.com/XHcun.png)