public async Task ShouldWork() { IConsoleMessage message = null; void EventHandler(object sender, IConsoleMessage e) { message = e; Page.Console -= EventHandler; } Page.Console += EventHandler; await TaskUtils.WhenAll( Page.WaitForConsoleMessageAsync(), Page.EvaluateAsync("() => console.log('hello', 5, { foo: 'bar'})")); if (TestConstants.IsFirefox) { Assert.AreEqual("hello 5 JSHandle@object", message.Text); } else { Assert.AreEqual("hello 5 {foo: bar}", message.Text); } Assert.AreEqual("log", message.Type); Assert.AreEqual("hello", await message.Args.ElementAt(0).JsonValueAsync <string>()); Assert.AreEqual(5, await message.Args.ElementAt(1).JsonValueAsync <int>()); Assert.AreEqual("bar", (await message.Args.ElementAt(2).JsonValueAsync <JsonElement>()).GetProperty("foo").GetString()); }
public async Task ShouldNotFailForWindowObject() { IConsoleMessage message = null; void EventHandler(object sender, IConsoleMessage e) { message = e; Page.Console -= EventHandler; } Page.Console += EventHandler; await TaskUtils.WhenAll( Page.EvaluateAsync("() => console.error(window)"), Page.WaitForEventAsync(PageEvent.Console) ); Assert.Equal("JSHandle@object", message.Text); }