Atata 1.5.0 is released with new controls, enhanced FindAttribute functionality, log4net support and other new useful features.
Changelog
New Features
- major
#346 Add
LocalDateTimeInput<TOwner>
control - major
#347 Add
Svg<TOwner>
control and a set of its nested controls - minor
#348 Add
WithGlobalCapability
method to driver builders - minor
#350 Add
PageSource
property toPageObject<TOwner>
- major #353 Add log4net log consumer
- minor
#355 Add
LazyInitializableLogConsumer
- minor
#356 Ability to reset/change
FindAttribute
for control - major #357 Big improvement of UI components search mechanics
- major
#360
FindAttribute
layers - minor #361 Add .NET 4.6 as target framework
- minor
#363 Add
AtataContextModeOfCurrent
enum withThreadStatic
,Static
andAsyncLocal
values
Changes and Enhancements
- minor
#351 Add extra
WithArguments
method to driver builders - major
#358
FindAttribute
to inheritMulticastAttribute
- major
#359 Deprecate
ControlFindingAttribute
- minor
#362 Use
Atata.WebDriverExtras
package v1.3.0
New LocalDateTimeInput Control
Added LocalDateTimeInput<TOwner>
control (inherited from Input<DateTime?, TOwner>) for handling <input type="datetime-local">
.
New Svg Control
Added Svg<TOwner>
control (inherited from Control<TOwner>
) for handling of <svg>
element.
Also, added a set of controls for main SVG elements:
SvgCircle<TOwner>
- for<circle>
.SvgEllipse<TOwner>
- for<ellipse>
.SvgLine<TOwner>
- for<line>
.SvgPath<TOwner>
- for<path>
.SvgPolygon<TOwner>
- for<polygon>
.SvgPolyline<TOwner>
- for<polyline>
.SvgRectangle<TOwner>
- for<rectangle>
.SvgText<TOwner>
- for<text>
.
See #347 issue for more details.
log4net Support
Implemented Log4NetConsumer
class for native Atata support of log4net library for logging.
To use it, invoke one of AddLog4NetLogging
overloaded methods of AtataContextBuilder
.
Improvement of UI Components Search Mechanics
In addition to component’s IWebElement Scope { get; }
property introduced new ISearchContext ScopeContext { get; }
property.
The ScopeContext
for all components returns the Scope
property value by default.
An exception is Page<TOwner>
for which Driver
(RemoteWebDriver
instance) is returned.
For custom components, it also can be changed by overriding OnGetScopeContext
method.
This improves performance of controls finding and makes the finding mechanic more stable.
See #357 issue for more details.
FindAttribute Various Improvements
There were several important improvements related to FindAttribute
:
- #356 Ability to reset/change
FindAttribute
for control - #358
FindAttribute
to inheritMulticastAttribute
- #359 Deprecate
ControlFindingAttribute
. UseFindAttribute
s instead
FindAttribute Layers
This is the new functionality that provides the ability to use many FindAtributes
for a single component in a chain way.
This is called layers.
This feature was implemented because of the needed shadow DOM support.
But can be also nicely used for other needs, like complex layered element locators.
See #360 issue for more details and usage examples.
New AsyncLocal Mode of AtataContext.Current
AsyncLocal mode was requested to use for applications that work using async/await.
Added AtataContextModeOfCurrent
enum with ThreadStatic
, Static
and AsyncLocal
values.
It defines the modes of AtataContext.Current
property.
Added property to AtataContext
:
public static AtataContextModeOfCurrent ModeOfCurrent { get; set; }
Existing IsThreadStatic
property of AtataContext
becomes obsolete as ModeOfCurrent
is a new recommended option that provides additional AsyncLocal
mode.
See #363 issue for more details.