How to use UIComponentAccessChainScopeCache class of Atata package

Best Atata code snippet using Atata.UIComponentAccessChainScopeCache

AtataContext.cs

Source:AtataContext.cs Github

copy

Full Screen

...354355        /// <summary>356        /// Gets the UI component access chain scope cache.357        /// </summary>358        public UIComponentAccessChainScopeCache UIComponentAccessChainScopeCache { get; } = new UIComponentAccessChainScopeCache();359360        /// <summary>361        /// Gets the object creator.362        /// </summary>363        public IObjectCreator ObjectCreator { get; internal set; }364365        /// <summary>366        /// Gets the object converter.367        /// </summary>368        public IObjectConverter ObjectConverter { get; internal set; }369370        /// <summary>371        /// Gets the object mapper.372        /// </summary>373        public IObjectMapper ObjectMapper { get; internal set; }374375        /// <summary>376        /// Gets the event bus, which can used to subscribe to and publish events.377        /// </summary>378        public IEventBus EventBus { get; internal set; }379380        /// <summary>381        /// Gets the variables dictionary.382        /// <para>383        /// The list of predefined variables:384        /// <list type="bullet">385        /// <item><c>build-start</c></item>386        /// <item><c>build-start-utc</c></item>387        /// <item><c>basedir</c></item>388        /// <item><c>artifacts</c></item>389        /// <item><c>test-name-sanitized</c></item>390        /// <item><c>test-name</c></item>391        /// <item><c>test-suite-name-sanitized</c></item>392        /// <item><c>test-suite-name</c></item>393        /// <item><c>test-start</c></item>394        /// <item><c>test-start-utc</c></item>395        /// <item><c>driver-alias</c></item>396        /// </list>397        /// </para>398        /// <para>399        /// Custom variables can be added as well.400        /// </para>401        /// </summary>402        public IDictionary<string, object> Variables { get; } = new Dictionary<string, object>();403404        /// <summary>405        /// Creates <see cref="AtataContextBuilder"/> instance for <see cref="AtataContext"/> configuration.406        /// Sets the value to <see cref="AtataContextBuilder.BuildingContext"/> copied from <see cref="GlobalConfiguration"/>.407        /// </summary>408        /// <returns>The created <see cref="AtataContextBuilder"/> instance.</returns>409        public static AtataContextBuilder Configure()410        {411            AtataBuildingContext buildingContext = GlobalConfiguration.BuildingContext.Clone();412            return new AtataContextBuilder(buildingContext);413        }414415        internal void InitDateTimeProperties()416        {417            StartedAtUtc = DateTime.UtcNow;418            StartedAt = TimeZoneInfo.ConvertTimeFromUtc(StartedAtUtc, TimeZone);419420            if (BuildStartUtc is null)421            {422                lock (s_buildStartSyncLock)423                {424                    if (BuildStartUtc is null)425                    {426                        BuildStartUtc = StartedAtUtc;427                        BuildStart = BuildStartUtc.Value.ToLocalTime();428                    }429                }430            }431432            BuildStartInTimeZone = TimeZoneInfo.ConvertTimeFromUtc(BuildStartUtc.Value, TimeZone);433        }434435        internal void InitMainVariables()436        {437            var variables = Variables;438439            variables["build-start"] = BuildStartInTimeZone;440            variables["build-start-utc"] = BuildStartUtc;441442            variables["basedir"] = AppDomain.CurrentDomain.BaseDirectory;443444            variables["test-name-sanitized"] = TestNameSanitized;445            variables["test-name"] = TestName;446            variables["test-suite-name-sanitized"] = TestSuiteNameSanitized;447            variables["test-suite-name"] = TestSuiteName;448            variables["test-start"] = StartedAt;449            variables["test-start-utc"] = StartedAtUtc;450451            variables["driver-alias"] = DriverAlias;452        }453454        internal void InitCustomVariables(IDictionary<string, object> customVariables)455        {456            var variables = Variables;457458            foreach (var variable in customVariables)459                variables[variable.Key] = variable.Value;460        }461462        internal void InitArtifactsVariable() =>463            Variables["artifacts"] = Artifacts.FullName.Value;464465        internal void LogTestStart()466        {467            StringBuilder logMessageBuilder = new StringBuilder(468                $"Starting {GetTestUnitKindName()}");469470            string[] testFullNameParts = GetTestFullNameParts().ToArray();471472            if (testFullNameParts.Length > 0)473            {474                logMessageBuilder.Append(": ")475                    .Append(string.Join(".", testFullNameParts));476            }477478            Log.Info(logMessageBuilder.ToString());479        }480481        private IEnumerable<string> GetTestFullNameParts()482        {483            if (TestSuiteType != null)484                yield return TestSuiteType.Namespace;485486            if (TestSuiteName != null)487                yield return TestSuiteName;488489            if (TestName != null)490                yield return TestName;491        }492493        private string GetTestUnitKindName()494        {495            return TestName != null496                ? "test"497                : TestSuiteType != null498                ? "test suite"499                : "test unit";500        }501502        /// <summary>503        /// Executes aggregate assertion using <see cref="AggregateAssertionStrategy" />.504        /// </summary>505        /// <param name="action">The action to execute in scope of aggregate assertion.</param>506        /// <param name="assertionScopeName">507        /// Name of the scope being asserted (page object, control, etc.).508        /// Is used to identify the assertion section in log.509        /// Can be null.510        /// </param>511        public void AggregateAssert(Action action, string assertionScopeName = null)512        {513            action.CheckNotNull(nameof(action));514515            AggregateAssertionStrategy.Assert(() =>516            {517                AggregateAssertionLevel++;518519                try520                {521                    Log.ExecuteSection(522                        new AggregateAssertionLogSection(assertionScopeName),523                        action);524                }525                finally526                {527                    AggregateAssertionLevel--;528                }529            });530        }531532        /// <summary>533        /// Cleans up the test context.534        /// </summary>535        /// <param name="quitDriver">if set to <see langword="true"/> quits WebDriver.</param>536        public void CleanUp(bool quitDriver = true)537        {538            if (_disposed)539                return;540541            PureExecutionStopwatch.Stop();542543            Log.ExecuteSection(544                new LogSection("Clean up AtataContext", LogLevel.Trace),545                () =>546                {547                    EventBus.Publish(new AtataContextCleanUpEvent(this));548549                    CleanUpTemporarilyPreservedPageObjectList();550551                    if (PageObject != null)552                        UIComponentResolver.CleanUpPageObject(PageObject);553554                    UIComponentAccessChainScopeCache.Release();555556                    if (quitDriver)557                        _driver?.Dispose();558                });559560            ExecutionStopwatch.Stop();561562            string testUnitKindName = GetTestUnitKindName();563            Log.InfoWithExecutionTimeInBrackets($"Finished {testUnitKindName}", ExecutionStopwatch.Elapsed);564            Log.InfoWithExecutionTime($"Pure {testUnitKindName} execution time:", PureExecutionStopwatch.Elapsed);565566            Log = null;567568            if (Current == this)
...

Full Screen

Full Screen

CheckBox`1.cs

Source:CheckBox`1.cs Github

copy

Full Screen

...33            return Scope.Selected;34        }35        protected override void SetValue(bool value)36        {37            Context.UIComponentAccessChainScopeCache.ExecuteWithin(() =>38            {39                if (GetValue() != value)40                    OnClick();41            });42        }43        /// <summary>44        /// Checks the control.45        /// Also executes <see cref="TriggerEvents.BeforeSet" /> and <see cref="TriggerEvents.AfterSet" /> triggers.46        /// </summary>47        /// <returns>The owner page object.</returns>48        public TOwner Check()49        {50            return Set(true);51        }...

Full Screen

Full Screen

TypesTextUsingFocusBehaviorAndSendKeysAttribute.cs

Source:TypesTextUsingFocusBehaviorAndSendKeysAttribute.cs Github

copy

Full Screen

...11        public override void Execute<TOwner>(IUIComponent<TOwner> component, string value)12        {13            if (!string.IsNullOrEmpty(value))14            {15                component.Context.UIComponentAccessChainScopeCache.ExecuteWithin(() =>16                {17                    component.ExecuteBehavior<FocusBehaviorAttribute>(x => x.Execute(component));18                    base.Execute(component, value);19                });20            }21        }22    }23}...

Full Screen

Full Screen

UIComponentAccessChainScopeCache

Using AI Code Generation

copy

Full Screen

1using Atata;2using NUnit.Framework;3{4    {5        protected AtataContext _atataContext;6        public void SetUp()7        {8            _atataContext = AtataContext.Configure()9                .UseChrome()10                .UseCulture("en-US")11                .UseAllNUnitTestContextLogging()12                .UseNUnitTestName()13                .AddNUnitTestContextLogging()14                .Build();15            _atataContext.AutoSetUp();16            Go.To<HomePage>();17        }18        public void TearDown()19        {20            _atataContext.AutoTearDown();21        }22    }23}24using Atata;25using NUnit.Framework;26{27    {28        protected AtataContext _atataContext;29        public void SetUp()30        {31            _atataContext = AtataContext.Configure()32                .UseChrome()33                .UseCulture("en-US")34                .UseAllNUnitTestContextLogging()35                .UseNUnitTestName()36                .AddNUnitTestContextLogging()37                .Build();38            _atataContext.AutoSetUp();39            Go.To<HomePage>();40        }41        public void TearDown()42        {43            _atataContext.AutoTearDown();44        }45    }46}47using Atata;48using NUnit.Framework;49{50    {51        protected AtataContext _atataContext;52        public void SetUp()53        {54            _atataContext = AtataContext.Configure()55                .UseChrome()56                .UseCulture("en-US")57                .UseAllNUnitTestContextLogging()58                .UseNUnitTestName()59                .AddNUnitTestContextLogging()60                .Build();61            _atataContext.AutoSetUp();62            Go.To<HomePage>();63        }

Full Screen

Full Screen

UIComponentAccessChainScopeCache

Using AI Code Generation

copy

Full Screen

1using Atata;2using NUnit.Framework;3using OpenQA.Selenium;4using OpenQA.Selenium.Chrome;5{6    {7        public void Test()8        {9            using (var driver = new ChromeDriver())10            {11                var googleSearch = new GoogleSearchPage(driver);12                googleSearch.Search.Value = "Atata";13                googleSearch.SearchButton.Click();14                var googleResults = new GoogleResultsPage(driver);15                googleResults.Results[0].Click();16            }17        }18    }19    {20        [FindById("lst-ib")]21        public TextInput<GoogleSearchPage> Search { get; private set; }22        [FindByValue("Google Search")]23        public Button<GoogleSearchPage> SearchButton { get; private set; }24    }25    {26        public ControlList<Heading<GoogleResultsPage>, GoogleResultsPage> Results { get; private set; }27    }28}29using Atata;30using NUnit.Framework;31using OpenQA.Selenium;32using OpenQA.Selenium.Chrome;33{34    {35        public void Test()36        {37            using (var driver = new ChromeDriver())38            {39                var googleSearch = new GoogleSearchPage(driver);40                googleSearch.Search.Value = "Atata";41                googleSearch.SearchButton.Click();42                var googleResults = new GoogleResultsPage(driver);43                googleResults.Results[0].Click();44            }45        }46    }47    {48        [FindById("lst-ib")]49        public TextInput<GoogleSearchPage> Search { get; private set; }50        [FindByValue("Google Search")]51        public Button<GoogleSearchPage> SearchButton { get; private set; }52    }53    {

Full Screen

Full Screen

UIComponentAccessChainScopeCache

Using AI Code Generation

copy

Full Screen

1using Atata;2using System;3using System.Collections.Generic;4using System.Linq;5using System.Text;6using System.Threading.Tasks;7using Atata.UIComponentAccessChainScopeCache;8{9    {10        private UIComponentAccessChainScopeCache _cache;11        public TestClass()12        {13            _cache = new UIComponentAccessChainScopeCache();14        }15        public void TestMethod()16        {17            var scope = _cache.GetScope("SomeKey");18            var scope2 = _cache.GetScope("SomeKey");19            var scope3 = _cache.GetScope("SomeKey2");20        }21    }22}23using Atata;24using System;25using System.Collections.Generic;26using System.Linq;27using System.Text;28using System.Threading.Tasks;29{30    {31        private UIComponentAccessChainScopeCache _cache;32        public TestClass()33        {34            _cache = new UIComponentAccessChainScopeCache();35        }36        public void TestMethod()37        {38            var scope = _cache.GetScope("SomeKey");39            var scope2 = _cache.GetScope("SomeKey");40            var scope3 = _cache.GetScope("SomeKey2");41        }42    }43}44using Atata;45using System;46using System.Collections.Generic;47using System.Linq;48using System.Text;49using System.Threading.Tasks;50{51    {52        private UIComponentAccessChainScopeCache _cache;53        public TestClass()54        {55            _cache = new UIComponentAccessChainScopeCache();56        }57        public void TestMethod()58        {59            var scope = _cache.GetScope("SomeKey");60            var scope2 = _cache.GetScope("SomeKey");61            var scope3 = _cache.GetScope("SomeKey2");62        }63    }64}65using Atata;66using System;67using System.Collections.Generic;68using System.Linq;69using System.Text;70using System.Threading.Tasks;71{72    {73        private UIComponentAccessChainScopeCache _cache;

Full Screen

Full Screen

UIComponentAccessChainScopeCache

Using AI Code Generation

copy

Full Screen

1using Atata;2using NUnit.Framework;3using OpenQA.Selenium;4using OpenQA.Selenium.Chrome;5{6    {7        public void Test1()8        {9            var scopeCache = new UIComponentAccessChainScopeCache();10            using (var driver = new ChromeDriver())11            {12                var scope = new UIComponentScope(driver, driver, null, null, scopeCache);13                var logo = new Control<Header>(scope, "Logo");14                var logoText = logo.Get(x => x.Text);15                Assert.That(logoText, Is.EqualTo("Atata"));16            }17        }18    }19}20using Atata;21using NUnit.Framework;22using OpenQA.Selenium;23using OpenQA.Selenium.Chrome;24{25    {26        public void Test1()27        {28            using (var driver = new ChromeDriver())29            {30                var scope = new UIComponentScope(driver, driver, null, null, new UIComponentAccessChainScopeCache());31                var logo = new Control<Header>(scope, "Logo");32                var logoText = logo.Get(x => x.Text);33                Assert.That(logoText, Is.EqualTo("Atata"));34            }35        }36    }37}38using Atata;39using NUnit.Framework;40using OpenQA.Selenium;41using OpenQA.Selenium.Chrome;42{43    {44        public void Test1()45        {46            using (var driver = new ChromeDriver())47            {48                var scope = new UIComponentScope(driver, driver, null, null);49                var logo = new Control<Header>(scope, "Logo");50                var logoText = logo.Get(x => x.Text);51                Assert.That(logoText, Is.EqualTo("Atata"));52            }53        }54    }55}56using Atata;

Full Screen

Full Screen

UIComponentAccessChainScopeCache

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Atata;7{8    using _ = UIComponentAccessChainScopeCachePage;9    [Url("UIComponentAccessChainScopeCache")]10    {11        public UIComponentAccessChainScopeCachePage()12        {13            UIComponentAccessChainScopeCache = new UIComponentAccessChainScopeCache<UIComponentAccessChainScopeCachePage, _>(this);14        }15        public UIComponentAccessChainScopeCache<UIComponentAccessChainScopeCachePage, _> UIComponentAccessChainScopeCache { get; private set; }16        public UIComponentAccessChainScopeCache<UIComponentAccessChainScopeCachePage, _> UIComponentAccessChainScopeCache2 { get; private set; }17        [FindById("name")]18        public TextInput<_> Name { get; private set; }19        [FindById("email")]20        public TextInput<_> Email { get; private set; }21        [FindById("phone")]22        public TextInput<_> Phone { get; private set; }23        [FindById("address")]24        public TextInput<_> Address { get; private set; }25        [FindById("city")]26        public TextInput<_> City { get; private set; }27        [FindById("state")]28        public TextInput<_> State { get; private set; }29        [FindById("zip")]30        public TextInput<_> Zip { get; private set; }31        [FindById("submit")]32        public Button<_> Submit { get; private set; }33    }34}35using System;36using System.Collections.Generic;37using System.Linq;38using System.Text;39using System.Threading.Tasks;40using Atata;41{42    using _ = UIComponentAccessChainScopeCachePage;43    [Url("UIComponentAccessChainScopeCache")]44    {45        public UIComponentAccessChainScopeCachePage()46        {

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 Atata automation tests on LambdaTest cloud grid

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

Most used methods in UIComponentAccessChainScopeCache

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful