Atata 1.1.0 is released with 40 enhancements and features.
Changelog
New Features
- minor
#231 Add
AssociatedControlList<TItem, TOwner>
- minor
#232 Add
LabelList<TOwner>
- minor
#234 Add
ChildTextNodes
value toContentSource
- minor
#235 Add
ChildTextNodesTrimmed
value toContentSource
- minor
#236 Add
ChildTextNodesTrimmedAndSpaceJoined
value toContentSource
- minor
#237 Add
FirstChildTextNode
value toContentSource
- minor
#238 Add
LastChildTextNode
value toContentSource
- major
#239 Add
GetContent(ContentSource source)
method toUIComponent<TOwner>
- major
#242 Add
RefreshPageUntil
method toPageObject<TOwner>
- minor
#246 Make
UriUtils
public - minor
#259 Add
Label<T, TOwner>
control - minor
#264 Add
TestNameSanitized
property toAtataContext
andLogEventInfo
- minor
#266 Make
ActivatorEx
static class public - minor
#267 Make
ObjectExpressionStringBuilder
class public - minor
#270 Add
UseDriver(RemoteWebDriver driver)
method toAtataContextBuilder
Changes and Enhancements
- minor
#228 Update
RadioButton<TOwner>.Check
method to avoid click when it is already checked - minor
#229 Make
SequalComponentScopeLocateResult.ScopeSource
property obsolete - major
#233 Remake
ContentSourceAttribute
to behavior - minor
#240 Enhance
TermResolver.GetEnumTerms
method to consider correctly enum attributes - minor
#241 Update
SentenceTermFormatter
andMidSentenceTermFormatter
to lowercase only first word letter - major
#244 Use
Selenium.WebDriver
package v3.141.0 - major
#245 Use
Atata.WebDriverExtras
package v1.2.0 - minor
#247 Add
CellXPath
property toFindByColumnIndexStrategy
- minor
#248 Add
HeaderXPath
property toFindByColumnHeaderStrategy
- minor
#249 Split
FindByColumnHeaderStrategy.Find
method - minor
#250 Use
XPathString
inTermMatchExtensions.CreateXPathCondition
methods to handle string values containing quote character - minor
#251 Deprecate
TermMatchExtensions.GetXPathOperationFormat
extension method - minor
#252 Use
ToShortIntervalString
andToLongIntervalString
TimeSpan
extension methods instead ofToIntervalString
appropriately - minor
#253 Deprecate
TimeSpanExtensions.ToIntervalString
extension method - minor
#254 Add ability to declare
IFindItemAttribute
at any level - minor
#255 Deprecate
IItemsControl
interface - minor
#257
OptionList<T, TOwner>.GetItemElements
method should throwNoSuchElementException
if no elements found - minor
#258 Throw more detailed exceptions in
ControlListScopeLocator
- minor
#260 Throw more detailed exceptions in
StrategyScopeLocator
- minor
#261 Add inner exception to
AssertionException
when thrown inIDataVerificationProviderExtensions.Satisfy
methods - minor
#262 Add inner exception to
AssertionException
when thrown inIUIComponentVerificationProviderExtensions.HaveChecked
method - minor
#263 Make
UIComponent.ComponentName
property settable - minor
#265 Make
AtataContext.Current
property settable - minor
#268 Make
AtataContext.CleanUpActions
property public - minor
#269 Make
AtataContext.BaseUrl
property settable
More Details in Exceptions
- Exceptions thrown in
Atata
were reviewed to provide as much information as possible for better failure analysis. AssertionException
now can contain inner exception if there were some during assertion. It can significantly improve understanding of assertuion failures due toNoSuchElementException
.- Upgrade of
Atata.WebDriverExtras
to v1.2.0 brings more details in messages ofNoSuchElementException
andNotMissingElementException
. You can find out more in Atata.WebDriverExtras 1.2.0 Release Notes.
RefreshPageUntil Method
Added method to PageObject<TOwner>
:
public TOwner RefreshPageUntil(Expression<Func<TOwner, bool>> predicateExpression, double? timeout = null, double? retryInterval = null);
Refreshes the current page until the condition specified by predicateExpression
argument is met.
Usage
Go.To<SomePage>().
RefreshPageUntil(x => x.SomeControl.IsVisible, timeout: 60, retryInterval: 5);
New ContentSource Enumeration Values
New ContentSource
enumeration values added:
ChildTextNodes
- uses the concatenation of child nested text values.ChildTextNodesTrimmed
- uses the concatenation of child nested text values trimming each text.ChildTextNodesTrimmedAndSpaceJoined
- uses the concatenation of child nested text values trimming each text part and joining with" "
separator.FirstChildTextNode
- uses the first child nested text value.LastChildTextNode
- uses the last child nested text value.
These new content source values as well as old ones (Text
, TextContent
, InnerHtml
, Value
) can be used in ContentSourceAttribute
and in new GetContent(ContentSource source)
method.
GetContent(ContentSource source) Method
Added method to UIComponent<TOwner>
:
public DataProvider<string, TOwner> GetContent(ContentSource source);
Usage
Go.To<SomePage>().
SomeControl.GetContent(ContentSource.ChildTextNodes).Should.Equal("some value");
string content = Go.To<SomePage>().
SomeControl.GetContent(ContentSource.FirstChildTextNode);