in utils/WasmTestRunner/Program.cs [151:204]
private static void RunTests()
{
var options = CreateOptions();
if (UseHeadless)
{
options.AddArgument("no-sandbox");
options.AddArgument("headless");
}
options.AddArgument("window-size=1024x768");
var (service, driver) = CreateDriver(options);
using var _ = service;
using var __ = driver;
driver.Url = Url;
var index = 0;
var currentTimeout = Timeout;
do
{
var pre = driver.FindElements(By.TagName("PRE")).Skip(index).ToArray();
if (pre.Length > 0)
{
index += pre.Length;
currentTimeout = Timeout; // reset the timeout
foreach (var e in pre)
Console.WriteLine(e.Text);
}
var resultsElement = driver.FindElements(By.Id("results"));
if (resultsElement.Count == 0)
{
if (driver.FindElements(By.ClassName("neterror")).Count > 0)
{
var errorCode = driver.FindElements(By.ClassName("error-code")).FirstOrDefault()?.Text;
throw new Exception($"There was an error loading the page: {errorCode}");
}
Thread.Sleep(500);
continue;
}
var text = resultsElement[0].Text;
var bytes = Convert.FromBase64String(text);
File.WriteAllBytes(OutputPath, bytes);
break;
} while (--currentTimeout > 0);
if (currentTimeout <= 0)
throw new TimeoutException();
}