示例#1
0
        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());
        }
示例#2
0
        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);
        }