Library that provides easy-to-use way of interaction with web-page elements in functional tests using PageObject pattern.
@match-url-...
annotations and Page::opened()
method).{param}
text in the url of @page-url
annotation) by [@slde-gorillaman].IPageFactory
instance as 2nd argument (before only container type elements were needing this).PageFactory
classes is now dependency injection container, instead of a Config
.PageFactory
class are not longer part of public API: setAnnotationManager
, setSession
.Button
typified element now accepts inputs with type="image"
attribute by [@LewisW].PageFactory
class: getAnnotationManager
, setUrlFactory
, getUrlFactory
, setUrlNormalizer
, setPageLocator
.Page::getPageFactory
method by @evangelion1204.PageFactory::setSession
method.label
search option to the @find-by
annotation by @fonsecas72.page_namespace_prefix
config setting (defaults to \
) to be used during automatic page class detection by it's name by @evangelion1204.PageFactory::getPage
method, that would return page instance found by it's class or name (by default "Home page" page name would be mapped to "HomePage" page class) by @evangelion1204.base_url
config setting by @evangelion1204.@find-by
annotation, then exception is thrown by @evangelion1204.@find-by
annotations to single page/element property resulted in exception by @evangelion1204.path
and query
from base_url
config setting (when present) were overwritten by ones from @page-url
annotation.TypyfiedElementCollection
sub-class wasn't set by proxy.WebElementCollection
was proxied by WebElementProxy
instead of WebElementCollectionProxy
resulting in Fatal Error.HtmlElement::find
and HtmlElement::findAll
methods for searching elements within that element.TypifiedElement::isValid
method for checking element presence in DOM for cases, when it might have been deleted dynamically.HtmlElement::getPageFactory
method to be used for nested HtmlElement
instantiation.Page::getAbsoluteUrl
method by @evangelion1204.Radio::getValue
method for getting value of the radio button.@page-url
annotation via params
annotation parameter by @evangelion1204.Property::isDataTypeArray
method for detecting if page/element property can store several HTML tags (e.g. Checkbox[]
) by @evangelion1204.@timeout
annotation for elements, to allow continuously searching for missing element (e.g. when it's added after page loaded via AJAX).WaitingElementLocator
element location that uses @timeout
annotation for element searching.AbstractElementCollection
base class that allows for several HTML tags on the page to match single property on page/element class.Config
class to allow having library-wide configuration abilities by @evangelion1204.@page-url
annotations thanks to new base_url
config setting by @evangelion1204.@page-url
annotation via new secure
annotation parameter by @evangelion1204.composer.lock
file for library contributors to use same dependency versions.@find-by
annotation usage on single page/element property (works by combining found HTML tags by each annotation into single array) by @evangelion1204.linkText
, partialLinkText
and idOrName
search options to the @find-by
annotation.Element
instead of Elements
).WebElement
instead of IWebElement
.Proxy
sub-namespace.IWebElement
or ITypifiedElement
) to determine if property can be decorated (more flexible).HtmlElement
into ElementContainer
class.RadioGroup
class transformed into collection to simplify associated radio button management.Radio
into RadioButton
class.Abstract
before names of abstract classes.aik099\QATools
into QATools\QATools
.@timeout
annotation is now in seconds, not milliseconds.TypifiedElement::find
and TypifiedElement::findAll
methods to indicate, that by default element doesn't allow nested elements presence.setContainer
and getContainer
methods from element classes to decouple them from rest of the library.[
) were not escaped in form element names, searched within Form typified element resulting in no elements found.Radio::select
method was using incorrect Mink method to radio button checking, which prevented radio button selection on Mink drivers other then Selenium2.[]
at the end of page/element property data type resulted in Fatal Error.