Atata 2.0.0 is released with upgrade to Selenium WebDriver 4 and other useful improvements.
Migrating to Atata v2
There was a lot of breaking changes made in Atata v2. Please check out information on all breaking changes and migration process in the Upgrade to Atata 2 guide, which was created specifically to help with upgrade.
Changelog
Breaking Changes
- minor
#580 Change getting of content to skip whitespace text nodes using
ContentSource
values:FirstChildTextNode
,LastChildTextNode
andChildTextNodesTrimmedAndSpaceJoined
- major
#581 Return
""
instead ofnull
as value of string-based field component - minor #582 Remove obsolete behavior attributes
- minor #583 Remove obsolete types and members
- minor
#585 Remove
Triggers
property ofUIComponent<TOwner>
- major #589 Rename classes related to component scope finding
- minor
#590 Rename
LogConsumerInfo
toLogConsumerConfiguration
- minor
#594 Change type of
DirectorySubject.Directories
property toSubdirectoriesProvider
- minor
#595 Change type of
DirectorySubject.Files
property toDirectoryFilesProvider
- major #599 Set target .NET framework to only .NET Standard 2.0
- minor
#600 Rename
ExtendedStringFormatter
toAtataTemplateStringFormatter
- minor
#601 Remove
ApplyMetadata
method fromUIComponent
- minor
#602 Replace
InitValueTermOptions
method withGetValueTermOptions
inField<T, TOwner>
- minor
#603 Remove
ValueTermOptions
property fromIDataProvider<out TData, out TOwner>
and all classes implementing it - minor
#604 Update
TitleTermFormatter
to not lowercase “from” and “with” - minor
#605 Replace
IPropertySettings
withIHasOptionalProperties
- minor
#606 Change
PropertyBag
- minor
#607 Add
UIComponentMetadata
parameter toCreateStrategy
andBuildComponentName
method ofFindAttribute
- minor
#608 Remove
Properties
property fromMulticastAttribute
- minor
#609 Replace
RemoteWebDriverLoggingExtensions
withIJavaScriptExecutorLoggingExtensions
- major
#610 Replace
RemoteWebDriver
usage withIWebDriver
- major #611 Use Selenium.WebDriver package v4.1.1
- major
#613 Replace
WithCapability
method ofDriverAtataContextBuilder<TBuilder, TService, TOptions>
withAddAdditionalBrowserOption
- major
#614 Replace
WithGlobalCapability
method of driverAtataContextBuilder
’s withAddAdditionalOption
- major
#616 Change default value of
AtataContext.ModeOfCurrent
property toAtataContextModeOfCurrent.AsyncLocal
- major
#617 Rename
WaitAttribute
toWaitSecondsAttribute
- minor
#619 Remove
Component
property fromIDataProvider<out TData, out TOwner>
- minor
#620 Replace inheritance of
IDataProvider<out TData, out TOwner>
withIObjectProvider<out TObject, out TOwner>
- minor
#621 Make obsolete
DataProvider<TData, TOwner>
andIDataProvider<TData, TOwner>
- minor
#622 Inherit
ControlList<TItem, TOwner>
fromIEnumerableProvider<TItem, TOwner>
instead ofIDataProvider<TData, TOwner>
- minor
#626 Rename
DataVerificationProvider<TData, TOwner>
toObjectVerificationProvider<TObject, TOwner>
- minor
#627 Rename
Value
property ofIObjectProvider<out TObject>
toObject
- minor
#628 Rename
IsValueDynamic
property ofIObjectProvider<out TObject, out TOwner>
toIsDynamic
- minor
#629 Rename
Value
property ofIObjectSource<out TObject>
toObject
- minor
#630 Rename
EnumerableProvider<TItem, TOwner>
toEnumerableValueProvider<TItem, TOwner>
- minor
#633 Remove
VerificationKind
property fromIVerificationProvider<out TOwner>
- minor
#634 Change return type of
IVerificationProvider<out TOwner>.GetRetryOptions
method - minor
#635 Remove
GetShouldText
method fromIVerificationProvider<out TOwner>
- minor
#636 Remove
ReportFailure
method fromIVerificationProvider<out TOwner>
- minor
#639 Extract
WithProperties
method ofAtataContextBuilder<TContext>
to extension method - minor
#640 Extract log consumer methods from
AtataContextBuilder
to newLogConsumersAtataContextBuilder
- minor
#641 Extract screenshot consumer methods from
AtataContextBuilder
to newScreenshotConsumersAtataContextBuilder
- major
#645 Change date/time format of
{build-start}
folder inAtataContext.Artifacts
directory path toyyyyMMddTHHmmss
- major
#647 Update
FileScreenshotConsumer
andNLogFileConsumer
to useAtataContext.Artifacts
as a defaultDirectoryPathBuilder
- major
#650 Change default control visibility from
Visible
toAny
- major
#657 Rename
AtataContextInitEvent
toAtataContextInitStartedEvent
- major #660 Use Atata.WebDriverExtras package v2.0.0
New Features
- minor
#586 Add
HasDriver
property toAtataContext
- minor
#588 Add
ToggleRandom
method toRadioButtonList<T, TOwner>
- minor
#623 Add
CreateValueProvider
method toUIComponent<TOwner>
- minor
#624 Add
DynamicObjectSource.Create
method - minor
#625 Add support of
UIComponent
script arguments toUIComponentScriptExecutor<TOwner>
- minor
#632 Add
WithRetryInterval
andWithRetryIntervalSeconds
methods toVerificationProvider<TVerificationProvider, TOwner>
- minor
#643 New
WaitForAlertBoxAttribute
trigger - major
#646 Add
IDictionary<string, object> Variables
property toAtataContext
- major
#651 Add
DefaultControlVisibility
property toAtataContext
- minor
#652 Add
FindOnlyVisibleAttribute
inherited fromFindSettingsAttribute
with presetVisibility = Visibility.Visible
- minor
#653 Add visibility set extension methods for
FindAttribute
- minor
#658 Add
AtataContextPreInitEvent
Changes and Enhancements
- minor
#596 Change default file name format of
FileScreenshotConsumer
- minor
#597 Wrap
UIComponent
scope element getting inStaleSafely.Execute
- minor #612 Add Microsoft.CSharp v4.7.0 package reference
- minor
#615 Extract
ChromiumAtataContextBuilder<TBuilder, TService, TOptions>
fromChromeAtataContextBuilder
for reuse byEdgeAtataContextBuilder
- minor
#618 Update implementation of
DragsAndDropsUsingActionsAttribute
to useActions.DragAndDrop
- minor
#631 Rename
Within
method ofVerificationProvider<TVerificationProvider, TOwner>
toWithinSeconds
- minor
#637 Change log level of “Clean up AtataContext” log section from
Info
toTrace
- minor
#638
EventBus
should call subscriptions in the order they were subscribed - minor
#642 Rename
FolderPathBuilder
property ofNLogFileConsumer
toDirectoryPathBuilder
- minor
#644 Rename
FolderPathBuilder
andFolderPath
properties ofFileScreenshotConsumer
toDirectoryPathBuilder
andDirectoryPath
- minor
#648 Make obsolete properties of
LogEventInfo
- minor
#654 Rename
PageObject<TOwner>.Wait(double seconds)
method toWaitSeconds
- minor
#655 Move types from
Atata.TermFormatting
namespace toAtata
- minor
#656 Remove logging of event handler execution from
EventBus
Fixes
- fix #649 Base class attribute doesn’t get to metadata when there is the same attribute in a base class
All Other Atata.* Releases
Check out release notes of other Atata.* packages.
- Atata.Templates 2.0.0
- Atata.Configuration.Json 2.0.0
- Atata.WebDriverExtras 2.0.0
- Atata.WebDriverSetup 2.0.0
- Atata.Bootstrap 2.0.0
- Atata.KendoUI 2.0.0
- Atata.Cli 2.0.0
- Atata.Cli.Npm 2.0.0
- Atata.Cli.HtmlValidate 2.0.0
- Atata.HtmlValidation 2.0.0
Artifacts
AtataContext.Artifacts
became a default root directory path for log files, screenshots and other files.
Now you can configure in one place common Artifacts
path for all test output files.
The default Artifacts
path template is "{basedir}/artifacts/{build-start:yyyyMMddTHHmmss}{test-suite-name-sanitized:/*}{test-name-sanitized:/*}"
.
AtataContext Variables
The IDictionary<string, object> Variables
property is added to AtataContext
.
The list of predefined variables that are present in Variables
:
build-start
build-start-utc
basedir
artifacts
test-name-sanitized
test-name
test-suite-name-sanitized
test-suite-name
test-start
test-start-utc
driver-alias
Custom variables can be added as well.
Methods were added to AtataContextBuilder
:
public AtataContextBuilder AddVariable(string key, object value);
public AtataContextBuilder AddVariables(IDictionary<string, object> variables);
Atata.Configuration.Json v2 also supports variables:
{
"variables": {
"anyVariableName": "value" // Any custom variable. Value can be string, number or boolean.
}
}