Atata 2.10.0 is Released

September 27, 2023 by Yevgeniy Shunevych


Atata 2.10.0 is released with the added browser logs monitoring support of remote Chrome and Edge, as well as other enhancements.

Changelog

New features

  • minor #769 Add SkipWhile and TakeWhile extension methods for IObjectProvider<IEnumerable<TSource>>

Changes and enhancements

  • major #767 Browser logs monitoring / Add support of remote Chrome and Edge
  • minor #768 Set default RemoteAddress value of RemoteDriverAtataContextBuilder to "http://127.0.0.1:4444/"
  • major #771 Make obsolete Exist verification extension method
  • major #772 Use Selenium.WebDriver package v4.13.1
  • major #773 Use Atata.WebDriverExtras package v2.3.0

Browser logs monitoring functionality

Browser logs monitoring feature now supports remote Chrome and Edge via RemoteWebDriver, for example for Selenium Grid.

Example of configuration

AtataContext.GlobalConfiguration
    .UseRemoteDriver()
        .WithRemoteAddress("http://localhost:4444/")
        .WithOptions<ChromeOptions>()
    .BrowserLogs.UseLog()
    .BrowserLogs.UseMinLevelOfWarning(LogLevel.Warn);

New control list extension methods

The new SkipWhile and TakeWhile extension methods are added for IObjectProvider<IEnumerable<TSource>> including ControlList<TItem, TOwner>.

page.SomeTable.Rows.SkipWhile(x => x.SomeValue < 10).ForEach(x => x...);
page.SomeTable.Rows.TakeWhile(x => x.SomeValue < 10).ForEach(x => x...);

Deprecate Exist verification extension method

The BePresent method should be used instead of Exist verification extension method. The both methods are equivalent and were living for too long, but only one should remain. Exist will be removed in Atata v3.

SomeControl.Should.Exist(); -> SomeControl.Should.BePresent();.

Exceptions change

Due to upgrade of Atata.WebDriverExtras package to v2.3.0 there are exception types change.

So now:

  • When component’s element is not found, new ElementNotFoundException is thrown instead of NoSuchElementException.
  • When component expected to be missing but it exists, ElementNotMissingException is thrown instead of NotMissingElementException.