ClassBrowser
Class represents a browser instance managed by the Manager. This object exposes all the browser specific information and methods to automate the underlying browser that this instance represents.
Definition
Namespace:ArtOfTest.WebAii.Core
Assembly:ArtOfTest.WebAii.dll
Syntax:
public class Browser : IAutomationHost, ISupportSearchHost, IAnnotationHost
Inheritance: objectBrowser
Derived Classes:
Implements:
Properties
Actions
Gets the Actions object that can be used to perform different actions against the loaded document in the browser.
Annotator
Gets the Annotator object associated with this browser.
Declaration
public Annotator Annotator { get; }
Property Value
Implements
AutoDomRefresh
Gets/Sets whether to automatically refresh the DOM tree after each browser command.
AutoWaitUntilReady
Gets/Sets whether to automatically wait until browser is ready after each browser command.
BrowserType
Gets the browser type (i.e. IE/FireFox ...etc)
ClientId
The unique ID for this browser that the manager identifies it with.
CommandTimeOut
Gets/Sets the max wait time in milliseconds that the browser will wait for a command to process before it times out.
ContentRectangle
Gets the rectangle of the content window or element
Declaration
public virtual Rectangle ContentRectangle { get; }
Property Value
ContentWindow
Gets the container window of the browser that contains the actual content of the page. (Excludes the browser toolbars, buttons ...etc.)
Declaration
public virtual Window ContentWindow { get; }
Property Value
Implements
Remarks
For Firefox 4, the ContentWindow returns the same Window as the Window property. Firefox 4 does not have separate Win32 windows for its chrome and its content.
Cookies
Gets the cookies manager associated with this browser that allows you to retrieve, delete and add cookies.
CreationTime
The UTC time this instance was instantiated.
Desktop
Desktop object that draws its annotations in this browser
DomTree
Gets the DOM Tree representation of the currently loaded document.
Declaration
public HtmlTreeBuilder DomTree { get; }
Property Value
Find
Gets the Find objects used to provide a rich set of methods to help identify elements in the Dom tree associated with this browser object.
FrameElement
Gets the Element object for the frame element represented by this Browser object, if this Browser represents a frame. If this Browser does not represent a frame, FrameElement is null.
FrameInfo
Gets the frame information if IsFrame = true else will return null. FrameInfo contains frame index and frame name.
Frames
List of child frames contained in this instance
Declaration
public virtual FramesCollection Frames { get; }
Property Value
FriendlyName
Get a friendly name for this browser instance.
Declaration
public string FriendlyName { get; }
Property Value
A string representing the friendly name for this browser. Used for display in Elements Explorer.
Implements
IsConnected
Gets whether the browser is connected to manager of not.
Declaration
public virtual bool IsConnected { get; }
Property Value
Remarks
This property performs a two way communication check between the manager and the actual browser.
IsFrame
Gets whether this instance represents a frame or not.
IsIEDialog
Gets whether this instance is an IE dialog (Modal/Modeless)
IsUILess
Whether this browser is UI less browser. (i.e. a raw http request/response browser)
Manager
The manager of this browser object.
NativeInstance
The native instance of this browser object (if available), otherwise null
PageTitle
Gets the page title if one exists. (text content of the 'title' tags)
QueryString
Gets a parsed name/value collection of the query string.
Declaration
public NameValueCollection QueryString { get; }
Property Value
Regions
Gets a dictionary of all identified test regions in the currently loaded document.
Declaration
public TestRegionCollection Regions { get; }
Property Value
StateHashCode
Get the state hash code.
TechnologyType
Get the technology type
Declaration
public TechnologyType TechnologyType { get; }
Property Value
Implements
UniqueId
Gets a unique id that identifies this browser instance.
Url
Gets the current page URL. This property is refreshed when calling RefreshDOMTree().
Version
The browser version for this browser type.
ViewSourceString
Gets the source of the page currently loaded in the browser. This is the string that the framework used to build the DOM.
Methods
Capture()
Capture the image of this browser
ClearCache(BrowserCacheType)
Clear the cache of a certain category.
Declaration
public void ClearCache(BrowserCacheType cacheType)
Parameters
cacheType
The cache category
Close(int)
Closes a browser window with a custom wait to close timeout.
Declaration
public virtual void Close(int waitToCloseTimeout)
Parameters
waitToCloseTimeout
The timeout in milliseconds to wait for the browser to close.
Remarks
This function will disconnect the browser from the manager first and then close its window. It will also perform a wait until the browser window is no longer visible. The time out for the wait is the same as the ExecuteCommandTimeout.
ContainsPoint(Point)
True/False whether a specific point falls within this browser/frame rendering region
ContainsRectangle(Rectangle)
True/False whether a specific rectangle falls within this browser/frame rendering region
ContainsText(string)
True/False whether the 'text' is contained within the page currently loaded. Not case sensitive.
ExecuteCommand(BrowserCommand)
Executes a command against this browser instance.
Declaration
public virtual BrowserCommand ExecuteCommand(BrowserCommand request)
Parameters
request
BrowserCommand
Returns
BrowserCommand
Remarks
If the request requires a specific response data, then the callers of this function should check the BrowserCommand.Response property for any responses from the browser. This method uses the browser's AutoDOMRefresh and AutoWaitUntilReady values to configure whether the browser should refresh the DOM or wait until the browser is ready after the command is executed.
ExecuteCommand(BrowserCommand, bool, bool)
Executes a command against this browser instance.
Declaration
public virtual BrowserCommand ExecuteCommand(BrowserCommand request, bool performDomRefresh, bool waitUntilReady)
Parameters
request
BrowserCommand
The command request to perform.
performDomRefresh
True/False whether to refresh the DOM after the command.
waitUntilReady
True/False whether to wait for the browser to be ready after the command.
Returns
BrowserCommand
A response to the request.
Remarks
If the request requires a specific response data, then the callers of this function should check the BrowserCommand.Response property for any responses from the browser.
GetChildHosts()
Get all containing child hosts. For Browser, this will return a list of all Frames (if any, excluding for Chrome, Firefox and EdgeChromium)
Declaration
public IAutomationHost[] GetChildHosts()
Returns
The list of automation hosts contained in this browser instance
Implements
GetHostRoot()
Get the root element of the DomTree
Declaration
public ITargetElement GetHostRoot()
Returns
The root element of the DOM tree.
Implements
GetSelectedText()
Gets the text currently selected by the user in the browser window
Declaration
public virtual string GetSelectedText()
Returns
The selected text
GoBack()
Simulates a go back browser action.
Declaration
public virtual void GoBack()
GoForward()
Simulates a go forward browser action.
Declaration
public virtual void GoForward()
IsReady()
Gets whether the browser is ready or not.
LocateAllInHost(string[])
Locates all elements contained in the browser's DOM matching the specified find expression.
Declaration
public IList<ITargetElement> LocateAllInHost(string[] expression)
Parameters
expression
string[]
Array of find expressions to use to locate the elements.
Returns
A list of elements matching the find expression.
Implements
LocateInHost(string[])
Locate an element in the host using an expression.
Declaration
public ITargetElement LocateInHost(string[] expression)
Parameters
expression
string[]
Array of find expressions to use to locate the target element.
Returns
The target element if found. 'null' if not found.
Implements
NavigateTo(Uri, bool)
Navigate the browser to a specific url.
NavigateTo(string, bool)
Navigate the browser to a specific url and then enable the script logging.
PrepareFrameForClosing()
Used to disable the AutoRefreshDom and WaitUntilReady of a frame preparing it to be closed on next action and no longer pulled by the framework.
Declaration
public virtual void PrepareFrameForClosing()
RefreshDomTree()
Force a refresh of the DOM tree from the current document.
ResizeContent(Rectangle)
Resize the browser window content to the specified window rectangle. This function will handle the padding between the outer browser window and the content window. If the new rectangle will not fit within the bounds of the screen, this method will try to approximate the requested size within the bounds of the screen.
Declaration
public virtual void ResizeContent(Rectangle rectangle)
Parameters
rectangle
The desired rectangle for the content window
ResizeContent(int, int, int, int)
Resize the browser window content to the specified window rectangle. This function will handle the padding between the outer browser window and the content window.
ScrollBy(int, int)
Scroll this window by offset x horizontally and y vertically.
Stop()
Simulate a stop navigation browser action.
Declaration
public virtual void Stop()
ToggleFullScreen()
Toggle the browser in and out of Full Screen (F11)
Declaration
public virtual void ToggleFullScreen()
TranslateBrowserOffset(BrowserType, BrowserType, Point)
Translates an offset from one browser to another. Useful because offset values recorded in Internet Explorer are typically two pixels different from offset values for the same relative point in other browsers.
Declaration
public static Point TranslateBrowserOffset(BrowserType sourceBrowser, BrowserType destinationBrowser, Point sourceOffset)
Parameters
sourceBrowser
The BrowserType the offset was originally intended for
destinationBrowser
The BrowserType to translate the offset to
sourceOffset
The original offset value
Returns
A translated offset value. The offset is translated two pixels left and up when translating from Internet Explorer to any other browser, and translated two pixels down and right when translating from any other browser to Internet Explorer.
UpdateDomTree(string)
Parse and update the DomTree
UpdateInterHostLinks()
Ensures that any links between hosts are up-to-date (Infrastructure use only)
Declaration
public void UpdateInterHostLinks()
Implements
WaitForAjax(int)
Wait for any active AJAX requests to complete.
WaitForElement(HtmlFindExpression, int, bool)
Wait for an element to exist. If it exists, return the Element object, else will throw a Timeout Exception.
Declaration
public Element WaitForElement(HtmlFindExpression expression, int timeout, bool invertCondition)
Parameters
expression
The HtmlFindExpression
timeout
The timeout to use. (msec)
invertCondition
Set to true to wait for element to not exist.
Returns
The fully initialized found Element.
Remarks
This method replaces the Actions.WaitForElement() and supports HtmlFindExpressions
WaitForElement(int, params string[])
Wait for an element to exist. If it exists, return the Element object, else will throw a Timeout Exception.
Declaration
public Element WaitForElement(int timeout, params string[] findClauses)
Parameters
timeout
The timeout to use (msec)
findClauses
string[]
The Find Expression clauses
Returns
The fully initialized found Element.
Remarks
This method replaces the Actions.WaitForElement() and supports HtmlFindExpressions
WaitForFrame(FrameInfo)
Wait for a frame to exist. Uses the Settings.ClientReadyTimeout as the timeout
WaitForFrame(FrameInfo, int)
Wait for a frame to exist.
Declaration
public Browser WaitForFrame(FrameInfo frameInfo, int timeout)
Parameters
frameInfo
The FrameInfo structure containing the frame details (id or name or src). Index is not needed.
timeout
The timeout to use for the wait.
Returns
The Browser object representing the frame, else will throw an exception.
WaitForUrl(string, bool, int)
Wait for a specific url to be set. This can be used to wait for browser redirects on certain sites.
WaitUntilReady()
Waits for the browser until its ready
Declaration
public virtual void WaitUntilReady()
Remarks
This method uses the Manager.Settings.ClientReadyTimeout as the timeout.
Events
AfterCommandExecuted
Event occurs after the command is executed and the response is available.
Declaration
public event EventHandler<BrowserCommandEventArgs> AfterCommandExecuted
Event Value
BeforeCommandExecuted
Event occurs before a command is pushed to the browser.
Declaration
public event EventHandler<BrowserCommandEventArgs> BeforeCommandExecuted
Event Value
Closing
Event occurs when the browser is about to close. [Browser.Close()] is called.
DomRefreshed
Event occurs after the DomTree is rebuilt (either after a command is executed or when RefreshDom is called)