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
ContentSourcevalues:FirstChildTextNode,LastChildTextNodeandChildTextNodesTrimmedAndSpaceJoined - major
#581 Return
""instead ofnullas value of string-based field component - minor #582 Remove obsolete behavior attributes
- minor #583 Remove obsolete types and members
- minor
#585 Remove
Triggersproperty ofUIComponent<TOwner> - major #589 Rename classes related to component scope finding
- minor
#590 Rename
LogConsumerInfotoLogConsumerConfiguration - minor
#594 Change type of
DirectorySubject.Directoriesproperty toSubdirectoriesProvider - minor
#595 Change type of
DirectorySubject.Filesproperty toDirectoryFilesProvider - major #599 Set target .NET framework to only .NET Standard 2.0
- minor
#600 Rename
ExtendedStringFormattertoAtataTemplateStringFormatter - minor
#601 Remove
ApplyMetadatamethod fromUIComponent - minor
#602 Replace
InitValueTermOptionsmethod withGetValueTermOptionsinField<T, TOwner> - minor
#603 Remove
ValueTermOptionsproperty fromIDataProvider<out TData, out TOwner>and all classes implementing it - minor
#604 Update
TitleTermFormatterto not lowercase “from” and “with” - minor
#605 Replace
IPropertySettingswithIHasOptionalProperties - minor
#606 Change
PropertyBag - minor
#607 Add
UIComponentMetadataparameter toCreateStrategyandBuildComponentNamemethod ofFindAttribute - minor
#608 Remove
Propertiesproperty fromMulticastAttribute - minor
#609 Replace
RemoteWebDriverLoggingExtensionswithIJavaScriptExecutorLoggingExtensions - major
#610 Replace
RemoteWebDriverusage withIWebDriver - major #611 Use Selenium.WebDriver package v4.1.1
- major
#613 Replace
WithCapabilitymethod ofDriverAtataContextBuilder<TBuilder, TService, TOptions>withAddAdditionalBrowserOption - major
#614 Replace
WithGlobalCapabilitymethod of driverAtataContextBuilder’s withAddAdditionalOption - major
#616 Change default value of
AtataContext.ModeOfCurrentproperty toAtataContextModeOfCurrent.AsyncLocal - major
#617 Rename
WaitAttributetoWaitSecondsAttribute - minor
#619 Remove
Componentproperty 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
Valueproperty ofIObjectProvider<out TObject>toObject - minor
#628 Rename
IsValueDynamicproperty ofIObjectProvider<out TObject, out TOwner>toIsDynamic - minor
#629 Rename
Valueproperty ofIObjectSource<out TObject>toObject - minor
#630 Rename
EnumerableProvider<TItem, TOwner>toEnumerableValueProvider<TItem, TOwner> - minor
#633 Remove
VerificationKindproperty fromIVerificationProvider<out TOwner> - minor
#634 Change return type of
IVerificationProvider<out TOwner>.GetRetryOptionsmethod - minor
#635 Remove
GetShouldTextmethod fromIVerificationProvider<out TOwner> - minor
#636 Remove
ReportFailuremethod fromIVerificationProvider<out TOwner> - minor
#639 Extract
WithPropertiesmethod ofAtataContextBuilder<TContext>to extension method - minor
#640 Extract log consumer methods from
AtataContextBuilderto newLogConsumersAtataContextBuilder - minor
#641 Extract screenshot consumer methods from
AtataContextBuilderto newScreenshotConsumersAtataContextBuilder - major
#645 Change date/time format of
{build-start}folder inAtataContext.Artifactsdirectory path toyyyyMMddTHHmmss - major
#647 Update
FileScreenshotConsumerandNLogFileConsumerto useAtataContext.Artifactsas a defaultDirectoryPathBuilder - major
#650 Change default control visibility from
VisibletoAny - major
#657 Rename
AtataContextInitEventtoAtataContextInitStartedEvent - major #660 Use Atata.WebDriverExtras package v2.0.0
New Features
- minor
#586 Add
HasDriverproperty toAtataContext - minor
#588 Add
ToggleRandommethod toRadioButtonList<T, TOwner> - minor
#623 Add
CreateValueProvidermethod toUIComponent<TOwner> - minor
#624 Add
DynamicObjectSource.Createmethod - minor
#625 Add support of
UIComponentscript arguments toUIComponentScriptExecutor<TOwner> - minor
#632 Add
WithRetryIntervalandWithRetryIntervalSecondsmethods toVerificationProvider<TVerificationProvider, TOwner> - minor
#643 New
WaitForAlertBoxAttributetrigger - major
#646 Add
IDictionary<string, object> Variablesproperty toAtataContext - major
#651 Add
DefaultControlVisibilityproperty toAtataContext - minor
#652 Add
FindOnlyVisibleAttributeinherited fromFindSettingsAttributewith 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
UIComponentscope element getting inStaleSafely.Execute - minor #612 Add Microsoft.CSharp v4.7.0 package reference
- minor
#615 Extract
ChromiumAtataContextBuilder<TBuilder, TService, TOptions>fromChromeAtataContextBuilderfor reuse byEdgeAtataContextBuilder - minor
#618 Update implementation of
DragsAndDropsUsingActionsAttributeto useActions.DragAndDrop - minor
#631 Rename
Withinmethod ofVerificationProvider<TVerificationProvider, TOwner>toWithinSeconds - minor
#637 Change log level of “Clean up AtataContext” log section from
InfotoTrace - minor
#638
EventBusshould call subscriptions in the order they were subscribed - minor
#642 Rename
FolderPathBuilderproperty ofNLogFileConsumertoDirectoryPathBuilder - minor
#644 Rename
FolderPathBuilderandFolderPathproperties ofFileScreenshotConsumertoDirectoryPathBuilderandDirectoryPath - minor
#648 Make obsolete properties of
LogEventInfo - minor
#654 Rename
PageObject<TOwner>.Wait(double seconds)method toWaitSeconds - minor
#655 Move types from
Atata.TermFormattingnamespace 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-startbuild-start-utcbasedirartifactstest-name-sanitizedtest-nametest-suite-name-sanitizedtest-suite-nametest-starttest-start-utcdriver-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.
}
}