Releases: tnypxl/BasinFramework
Releases · tnypxl/BasinFramework
v1.1.3
Release 1.1.3
- [NEW ✨] Added an
ElementTimeout
property toIBrowserConfig
used in theElement
class as a default inline timeout. - [NEW ✨] Added an
IfTextMatches(string pattern)
method toElement
class that returns the element if text matches and throws an error if it doesn't. - [HOUSEKEEPING 🧹] Cleaned up
Element
class by removed unnecessary overload constructors. All element locations are based entirely on ILocatorBuilder.
v1.1.2
Release 1.1.2
- Renamed
Basin()
toBasinEnv()
and flatten accessible properties removing the need to access config details through aConfig
property.
v1.1.1
Release 1.1.1
- Added a gang of additional HTML tags to PageMap class.
- Renamed some key classes (for real this time). There methods and properties are the same.
- Driver() => Browser()
- BSN() => Basin()
v1.1.0
Release 1.1.0
- Overhauled driver instance management to use decorators which provides a common api between browser classes and a cleaner path to class extension.
- Moved majority of browser/driver code out of
Basin.Selenium
namespace and intoBasin.Core.Browsers
namespace. - Updated GitHub actions to automate publishing nugets and creating github releases.
v1.0.3
v1.0.2
v0.0.88
v0.0.86
v0.0.8
- [FIX] PageCollections would throw a duplicate key error. It just returns if the key already exists.
- [NEW] New
Locator()
class that builds an XPath selector for you and returnsBy.XPath
. If more advance XPath usage is need, Just use the existingLocate
methods.- Usage:
new Locator("table").WithId("earningsTable").By;
- Usage:
- [NEW] Add semantic locate methods. Its possible that there are some missing elements not very commonly used for browser automation. These initial methods should cover most if not all use cases. The
Element()
class was updated with an overload constructor that uses the newLocator()
class.- Current:
public Element LoginButton => Locate(By.CssSelector(".loginBtn"))
; - New:
public Element LoginButton => Button.WithClass("loginBtn");
)
- Current:
v0.0.7
[NEW] Page Collections
public class SomeTabSection : Page {}
public class AnotherTabSection : Page {}
// Create a collection and page classes to it. It will initialize the class and store it in a dictionary
var PageCollection tabSections = new PageCollection();
tabSections.Add<SomeTabSection>();
tabSections.Add<AnotherTabSection>();
// Retrieve page from collection
tabSections.Get<AnotherTabSection>().SomeMethodInThatClass()
[Enhancement] Driver management
- Made driver management a little more robust. You can use your own IWebDriver instances or use Basin driver builders to create them. (docs coming soon).