How to use ComplexObjectTestClass class of PuppeteerSharp.Tests.PageTests package

Best Puppeteer-sharp code snippet using PuppeteerSharp.Tests.PageTests.ComplexObjectTestClass

PageEvaluateTests.cs

Source:PageEvaluateTests.cs Github

copy

Full Screen

...316        }317        [PuppeteerFact]318        public async Task ShouldWorkWithDifferentSerializerSettings()319        {320            var result = await Page.EvaluateFunctionAsync<ComplexObjectTestClass>("() => { return { foo: 'bar' }}");321            Assert.Equal("bar", result.Foo);322            result = (await Page.EvaluateFunctionAsync<JToken>("() => { return { Foo: 'bar' }}"))323                .ToObject<ComplexObjectTestClass>(new JsonSerializerSettings());324            Assert.Equal("bar", result.Foo);325            result = await Page.EvaluateExpressionAsync<ComplexObjectTestClass>("var obj = { foo: 'bar' }; obj;");326            Assert.Equal("bar", result.Foo);327            result = (await Page.EvaluateExpressionAsync<JToken>("var obj = { Foo: 'bar' }; obj;"))328                .ToObject<ComplexObjectTestClass>(new JsonSerializerSettings());329            Assert.Equal("bar", result.Foo);330        }331        [PuppeteerTest("evaluation.spec.ts", "Page.evaluate", "should properly serialize null fields")]332        [PuppeteerFact]333        public async Task ShouldProperlySerializeNullFields()334        {335            var result = await Page.EvaluateFunctionAsync<Dictionary<string, object>>("() => ({a: null})");336            Assert.True(result.ContainsKey("a"));337            Assert.Null(result["a"]);338        }339        [PuppeteerTest("evaluation.spec.ts", "Page.evaluate", "should accept element handle as an argument")]340        [PuppeteerFact]341        public async Task ShouldAcceptObjectHandleAsAnArgument()342        {343            await Page.SetContentAsync("<section>42</section>");344            var element = await Page.QuerySelectorAsync("section");345            var text = await Page.EvaluateFunctionAsync<string>("(e) => e.textContent", element);346            Assert.Equal("42", text);347        }348        [PuppeteerFact]349        public async Task ShouldWorkWithoutGenerics()350        {351            Assert.NotNull(await Page.EvaluateExpressionAsync("var obj = {}; obj;"));352            Assert.NotNull(await Page.EvaluateExpressionAsync("[]"));353            Assert.NotNull(await Page.EvaluateExpressionAsync("''"));354            var objectPopulated = await Page.EvaluateExpressionAsync("var obj = {a:1}; obj;");355            Assert.NotNull(objectPopulated);356            Assert.Equal(1, objectPopulated["a"]);357            var arrayPopulated = await Page.EvaluateExpressionAsync("[1]");358            Assert.IsType<JArray>(arrayPopulated);359            Assert.Equal(1, ((JArray)arrayPopulated)[0]);360            Assert.Equal("1", await Page.EvaluateExpressionAsync("'1'"));361            Assert.Equal(1, await Page.EvaluateExpressionAsync("1"));362            Assert.Equal(11111111, await Page.EvaluateExpressionAsync("11111111"));363            Assert.Equal(11111111111111, await Page.EvaluateExpressionAsync("11111111111111"));364            Assert.Equal(1.1, await Page.EvaluateExpressionAsync("1.1"));365        }366        public class ComplexObjectTestClass367        {368            public string Foo { get; set; }369        }370    }371}...

Full Screen

Full Screen

EvaluateTests.cs

Source:EvaluateTests.cs Github

copy

Full Screen

...262        }263        [Fact]264        public async Task ShouldWorkWithDifferentSerializerSettings()265        {266            var result = await Page.EvaluateFunctionAsync<ComplexObjectTestClass>("() => { return { foo: 'bar' }}");267            Assert.Equal("bar", result.Foo);268            result = (await Page.EvaluateFunctionAsync<JToken>("() => { return { Foo: 'bar' }}"))269                .ToObject<ComplexObjectTestClass>(new JsonSerializerSettings());270            Assert.Equal("bar", result.Foo);271            result = await Page.EvaluateExpressionAsync<ComplexObjectTestClass>("var obj = { foo: 'bar' }; obj;");272            Assert.Equal("bar", result.Foo);273            result = (await Page.EvaluateExpressionAsync<JToken>("var obj = { Foo: 'bar' }; obj;"))274                .ToObject<ComplexObjectTestClass>(new JsonSerializerSettings());275            Assert.Equal("bar", result.Foo);276        }277        [Fact]278        public async Task ShouldProperlyIgnoreUndefinedFields()279        {280            var result = await Page.EvaluateFunctionAsync<Dictionary<string, object>>("() => ({a: undefined})");281            Assert.Empty(result);282        }283        [Fact]284        public async Task ShouldProperlySerializeNullFields()285        {286            var result = await Page.EvaluateFunctionAsync<Dictionary<string, object>>("() => ({a: null})");287            Assert.True(result.ContainsKey("a"));288            Assert.Null(result["a"]);289        }290        [Fact]291        public async Task ShouldAcceptObjectHandleAsAnArgument()292        {293            var navigatorHandle = await Page.EvaluateExpressionHandleAsync("navigator");294            var text = await Page.EvaluateFunctionAsync<string>("e => e.userAgent", navigatorHandle);295            Assert.Contains("Mozilla", text);296        }297        [Fact]298        public async Task ShouldAcceptObjectHandleToPrimitiveTypes()299        {300            var aHandle = await Page.EvaluateExpressionHandleAsync("5");301            var isFive = await Page.EvaluateFunctionAsync<bool>("e => Object.is(e, 5)", aHandle);302            Assert.True(isFive);303        }304        [Fact]305        public async Task ShouldWarnOnNestedObjectHandles()306        {307            var handle = await Page.EvaluateFunctionHandleAsync("() => document.body");308            var elementHandle = handle as ElementHandle;309            var exception = await Assert.ThrowsAsync<EvaluationFailedException>(()310                => Page.EvaluateFunctionHandleAsync(311                    "opts => opts.elem.querySelector('p')",312                    new { elem = handle }));313            Assert.Contains("Are you passing a nested JSHandle?", exception.Message);314            //Check with ElementHandle315            exception = await Assert.ThrowsAsync<EvaluationFailedException>(()316                => Page.EvaluateFunctionHandleAsync(317                    "opts => opts.elem.querySelector('p')",318                    new { elem = elementHandle }));319            Assert.Contains("Are you passing a nested JSHandle?", exception.Message);320        }321        [Fact]322        public async Task ShouldWorkWithoutGenerics()323        {324            Assert.NotNull(await Page.EvaluateExpressionAsync("var obj = {}; obj;"));325            Assert.NotNull(await Page.EvaluateExpressionAsync("[]"));326            Assert.NotNull(await Page.EvaluateExpressionAsync("''"));327            var objectPopulated = await Page.EvaluateExpressionAsync("var obj = {a:1}; obj;");328            Assert.NotNull(objectPopulated);329            Assert.Equal(1, objectPopulated["a"]);330            var arrayPopulated = await Page.EvaluateExpressionAsync("[1]");331            Assert.IsType<JArray>(arrayPopulated);332            Assert.Equal(1, ((JArray)arrayPopulated)[0]);333            Assert.Equal("1", await Page.EvaluateExpressionAsync("'1'"));334            Assert.Equal(1, await Page.EvaluateExpressionAsync("1"));335            Assert.Equal(11111111, await Page.EvaluateExpressionAsync("11111111"));336            Assert.Equal(11111111111111, await Page.EvaluateExpressionAsync("11111111111111"));337            Assert.Equal(1.1, await Page.EvaluateExpressionAsync("1.1"));338        }339        public class ComplexObjectTestClass340        {341            public string Foo { get; set; }342        }343    }344}...

Full Screen

Full Screen

ComplexObjectTestClass

Using AI Code Generation

copy

Full Screen

1using PuppeteerSharp.Tests.PageTests;2using System;3using System.Collections.Generic;4using System.Linq;5using System.Text;6using System.Threading.Tasks;7{8    {9        static void Main(string[] args)10        {11            var complexObjectTestClass = new ComplexObjectTestClass();12            complexObjectTestClass.TestComplexObject();13        }14    }15}16using System;17using System.Collections.Generic;18using System.Linq;19using System.Text;20using System.Threading.Tasks;21{22    {23        public void TestComplexObject()24        {25            var complexObject = new ComplexObject();26            complexObject.TestComplexObject();27        }28    }29}30using System;31using System.Collections.Generic;32using System.Linq;33using System.Text;34using System.Threading.Tasks;35{36    {37        public void TestComplexObject()38        {39            var complexObject = new ComplexObject();40            complexObject.TestComplexObject();41        }42    }43}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Puppeteer-sharp automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful