Atata 0.15.0 Released

October 12, 2017 by Yevgeniy Shunevych


Atata 0.15.0 has been released with .NET Core/Standard 2.0 support. Check the changelog, major features and .NET Core issues.

Changelog

Breaking Changes

  • break #98 Remove obsolete members of UIComponentMetadata
  • break #99 Remove obsolete member of UIComponentResolver

New Features

  • minor #86 Add GetScope method to UIComponent
  • major #95 Add Wait method to UIComponent<TOwner>
  • major #96 Add WaitForAttribute trigger
  • major #101 Fix command execution delay of WebDriver for .NET Core 2.0
  • minor #103 Culture configuration

Changes and Enhancements

  • minor #87 Enhance ScopeSourceExtensions methods
  • major #88 Use Selenium.WebDriver and Selenium.Support packages v3.6.0
  • major #89 Use Atata.WebDriverExtras package v0.13.0
  • minor #90 Handle StaleElementReferenceException in WaitForElementAttribute
  • minor #91 Handle StaleElementReferenceException in Exist verification extension method
  • minor #92 Handle StaleElementReferenceException in data verification extension methods
  • major #93 Support .NET Standard 2.0
  • minor #94 Replace WaitUntil enum with Until
  • minor #97 Log execution of WaitForElementAttribute trigger
  • minor #100 Add DriverAtataContextBuilder<TBuilder> base driver builder class
  • minor #102 Add WithLocalDriverPath method to DriverAtataContextBuilder<TBuilder, TService, TOptions>

Fixes

  • fix #85 Control Init and DeInit triggers don’t execute

.NET Core Support

.NET Standard 2.0 version of Atata added with v0.15.0. Now you can use Atata package in .NET Core 2.0 test project. You can also create .NET Standard 2.0 library project for Atata components package.

WebDriver .NET Core Issues

There is a bug in Selenium WebDriver v3.6.0 for .NET Core 2.0: each WebDriver request takes extra 1 second. It makes execution of WebDriver actions very slow. The fix is added within Atata package. Use WithFixOfCommandExecutionDelay driver configurational method to get round of this bug. Check the fix details: #101 Fix command execution delay of WebDriver for .NET Core 2.0.

WebDriver doesn’t look for driver (e.g., “chromedriver.exe”) in local folder in .NET Standard 2.0 version. Use WithLocalDriverPath driver configurational method if you use .NET Core 2.0 project that uses driver as a project package (hosted in the same build directory). Check the fix details: #102 Add WithLocalDriverPath method to DriverAtataContextBuilder<TBuilder, TService, TOptions>.

NUnit .NET Core Issues

Current NUnit3TestAdapter package v3.8.0 doesn’t support parallel test execution yet.

Current NUnit package v3.8.1 doesn’t support SetCulture and SetUICulture attributes. Please check #103 for Culture configuration using UseCulture configurational method.

Running Tests with Visual Studio

For test detection in “Test Explorer” VS panel, .NET Core requires Microsoft.NET.Test.Sdk package to be added to the project containing tests (no matter NUnit, xUnit, MSTest, etc.).

Wait Method

Added new method to UIComponent<TOwner>:

public TOwner Wait(Until until, WaitOptions options = null);

Usage

ContentBlock.Wait(Until.Visible);

WaitForAttribute Trigger

Added new WaitForAttribute trigger with the following constructor:

public WaitForAttribute(Until until = Until.Visible, TriggerEvents on = TriggerEvents.Init, TriggerPriority priority = TriggerPriority.Medium);

It calls component’s Wait method passing Until value to it.

Usage

// Wait upon page oject initialization until the control is visible.
[WaitFor]
public Text<_> ContentBlock { get; private set; }

// Wait upon page oject deinitialization until the control is missing or hidden.
[WaitFor(Until.MissingOrHidden, TriggerEvents.DeInit)]
public Text<_> SavingIndicator { get; private set; }

StaleElementReferenceException Handling

Added handling of StaleElementReferenceException to WaitForElementAttribute trigger and verification methods. Basically, when StaleElementReferenceException occurs, Atata catches it and retries an action again.