Documentation ¶
Overview ¶
Package agouti is a universal WebDriver client for Go. It extends the agouti/api package to provide a feature-rich interface for controlling a web browser.
Index ¶
- type Button
- type Capabilities
- func (c Capabilities) Browser(name string) Capabilities
- func (c Capabilities) JSON() (string, error)
- func (c Capabilities) Platform(platform string) Capabilities
- func (c Capabilities) Proxy(p ProxyConfig) Capabilities
- func (c Capabilities) Version(version string) Capabilities
- func (c Capabilities) With(feature string) Capabilities
- func (c Capabilities) Without(feature string) Capabilities
- type Click
- type Log
- type MultiSelection
- func (s *MultiSelection) All(selector string) *MultiSelection
- func (s *MultiSelection) AllByButton(text string) *MultiSelection
- func (s *MultiSelection) AllByClass(text string) *MultiSelection
- func (s *MultiSelection) AllByID(text string) *MultiSelection
- func (s *MultiSelection) AllByLabel(text string) *MultiSelection
- func (s *MultiSelection) AllByLink(text string) *MultiSelection
- func (s *MultiSelection) AllByName(name string) *MultiSelection
- func (s *MultiSelection) AllByXPath(selector string) *MultiSelection
- func (s *MultiSelection) At(index int) *Selection
- func (s *MultiSelection) Find(selector string) *Selection
- func (s *MultiSelection) FindByButton(text string) *Selection
- func (s *MultiSelection) FindByClass(text string) *Selection
- func (s *MultiSelection) FindByID(id string) *Selection
- func (s *MultiSelection) FindByLabel(text string) *Selection
- func (s *MultiSelection) FindByLink(text string) *Selection
- func (s *MultiSelection) FindByName(name string) *Selection
- func (s *MultiSelection) FindByXPath(selector string) *Selection
- func (s *MultiSelection) FindForAppium(selectorType string, text string) *Selection
- func (s *MultiSelection) First(selector string) *Selection
- func (s *MultiSelection) FirstByButton(text string) *Selection
- func (s *MultiSelection) FirstByClass(text string) *Selection
- func (s *MultiSelection) FirstByLabel(text string) *Selection
- func (s *MultiSelection) FirstByLink(text string) *Selection
- func (s *MultiSelection) FirstByName(name string) *Selection
- func (s *MultiSelection) FirstByXPath(selector string) *Selection
- func (s *MultiSelection) Selectors() Selectors
- type Option
- type Page
- func (s *Page) All(selector string) *MultiSelection
- func (s *Page) AllByButton(text string) *MultiSelection
- func (s *Page) AllByClass(text string) *MultiSelection
- func (s *Page) AllByID(text string) *MultiSelection
- func (s *Page) AllByLabel(text string) *MultiSelection
- func (s *Page) AllByLink(text string) *MultiSelection
- func (s *Page) AllByName(name string) *MultiSelection
- func (s *Page) AllByXPath(selector string) *MultiSelection
- func (p *Page) Back() error
- func (p *Page) CancelPopup() error
- func (p *Page) ClearCookies() error
- func (p *Page) Click(event Click, button Button) error
- func (p *Page) CloseWindow() error
- func (p *Page) ConfirmPopup() error
- func (p *Page) DeleteCookie(name string) error
- func (p *Page) Destroy() error
- func (p *Page) DoubleClick() error
- func (p *Page) EnterPopupText(text string) error
- func (s *Page) Find(selector string) *Selection
- func (s *Page) FindByButton(text string) *Selection
- func (s *Page) FindByClass(text string) *Selection
- func (s *Page) FindByID(id string) *Selection
- func (s *Page) FindByLabel(text string) *Selection
- func (s *Page) FindByLink(text string) *Selection
- func (s *Page) FindByName(name string) *Selection
- func (s *Page) FindByXPath(selector string) *Selection
- func (s *Page) FindForAppium(selectorType string, text string) *Selection
- func (s *Page) First(selector string) *Selection
- func (s *Page) FirstByButton(text string) *Selection
- func (s *Page) FirstByClass(text string) *Selection
- func (s *Page) FirstByLabel(text string) *Selection
- func (s *Page) FirstByLink(text string) *Selection
- func (s *Page) FirstByName(name string) *Selection
- func (s *Page) FirstByXPath(selector string) *Selection
- func (p *Page) Forward() error
- func (p *Page) GetCookies() ([]*http.Cookie, error)
- func (p *Page) HTML() (string, error)
- func (p *Page) LogTypes() ([]string, error)
- func (p *Page) MoveMouseBy(xOffset, yOffset int) error
- func (p *Page) Navigate(url string) error
- func (p *Page) NextWindow() error
- func (p *Page) PopupText() (string, error)
- func (p *Page) ReadAllLogs(logType string) ([]Log, error)
- func (p *Page) ReadNewLogs(logType string) ([]Log, error)
- func (p *Page) Refresh() error
- func (p *Page) Reset() error
- func (p *Page) RunScript(body string, arguments map[string]interface{}, result interface{}) error
- func (p *Page) Screenshot(filename string) error
- func (s *Page) Selectors() Selectors
- func (p *Page) Session() *api.Session
- func (p *Page) SetCookie(cookie *http.Cookie) error
- func (p *Page) SetImplicitWait(timeout int) error
- func (p *Page) SetPageLoad(timeout int) error
- func (p *Page) SetScriptTimeout(timeout int) error
- func (p *Page) Size(width, height int) error
- func (p *Page) String() string
- func (p *Page) SwitchToParentFrame() error
- func (p *Page) SwitchToRootFrame() error
- func (p *Page) SwitchToWindow(name string) error
- func (p *Page) Title() (string, error)
- func (p *Page) URL() (string, error)
- func (p *Page) WindowCount() (int, error)
- type ProxyConfig
- type Selection
- func (s *Selection) Active() (bool, error)
- func (s *Selection) All(selector string) *MultiSelection
- func (s *Selection) AllByButton(text string) *MultiSelection
- func (s *Selection) AllByClass(text string) *MultiSelection
- func (s *Selection) AllByID(text string) *MultiSelection
- func (s *Selection) AllByLabel(text string) *MultiSelection
- func (s *Selection) AllByLink(text string) *MultiSelection
- func (s *Selection) AllByName(name string) *MultiSelection
- func (s *Selection) AllByXPath(selector string) *MultiSelection
- func (s *Selection) Attribute(attribute string) (string, error)
- func (s *Selection) CSS(property string) (string, error)
- func (s *Selection) Check() error
- func (s *Selection) Clear() error
- func (s *Selection) Click() error
- func (s *Selection) Count() (int, error)
- func (s *Selection) DoubleClick() error
- func (s *Selection) Elements() ([]*api.Element, error)
- func (s *Selection) Enabled() (bool, error)
- func (s *Selection) EqualsElement(other interface{}) (bool, error)
- func (s *Selection) Fill(text string) error
- func (s *Selection) Find(selector string) *Selection
- func (s *Selection) FindByButton(text string) *Selection
- func (s *Selection) FindByClass(text string) *Selection
- func (s *Selection) FindByID(id string) *Selection
- func (s *Selection) FindByLabel(text string) *Selection
- func (s *Selection) FindByLink(text string) *Selection
- func (s *Selection) FindByName(name string) *Selection
- func (s *Selection) FindByXPath(selector string) *Selection
- func (s *Selection) FindForAppium(selectorType string, text string) *Selection
- func (s *Selection) First(selector string) *Selection
- func (s *Selection) FirstByButton(text string) *Selection
- func (s *Selection) FirstByClass(text string) *Selection
- func (s *Selection) FirstByLabel(text string) *Selection
- func (s *Selection) FirstByLink(text string) *Selection
- func (s *Selection) FirstByName(name string) *Selection
- func (s *Selection) FirstByXPath(selector string) *Selection
- func (s *Selection) FlickFinger(xOffset, yOffset int, speed uint) error
- func (s *Selection) MouseToElement() error
- func (s *Selection) ScrollFinger(xOffset, yOffset int) error
- func (s *Selection) Select(text string) error
- func (s *Selection) Selected() (bool, error)
- func (s *Selection) Selectors() Selectors
- func (s *Selection) SendKeys(key string) error
- func (s *Selection) String() string
- func (s *Selection) Submit() error
- func (s *Selection) SwitchToFrame() error
- func (s *Selection) Tap(event Tap) error
- func (s *Selection) Text() (string, error)
- func (s *Selection) Touch(event Touch) error
- func (s *Selection) Uncheck() error
- func (s *Selection) UploadFile(filename string) error
- func (s *Selection) Visible() (bool, error)
- type Selectors
- type Tap
- type Touch
- type WebDriver
- func ChromeDriver(options ...Option) *WebDriver
- func EdgeDriver(options ...Option) *WebDriver
- func NewWebDriver(url string, command []string, options ...Option) *WebDriver
- func PhantomJS(options ...Option) *WebDriver
- func Selendroid(jarFile string, options ...Option) *WebDriver
- func Selenium(options ...Option) *WebDriver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Capabilities ¶
type Capabilities map[string]interface{}
A Capabilities instance defines the desired capabilities the WebDriver should use to configure a Page.
For example, to open Firefox with JavaScript disabled:
capabilities := agouti.NewCapabilities().Browser("firefox").Without("javascriptEnabled") driver.NewPage(agouti.Desired(capabilities))
See: https://code.google.com/p/selenium/wiki/DesiredCapabilities
All methods called on this instance will modify the original instance.
func NewCapabilities ¶
func NewCapabilities(features ...string) Capabilities
NewCapabilities returns a Capabilities instance with any provided features enabled.
func (Capabilities) Browser ¶
func (c Capabilities) Browser(name string) Capabilities
Browser sets the desired browser name. Possible values:
{android|chrome|firefox|htmlunit|internet explorer|iPhone|iPad|opera|safari}
func (Capabilities) JSON ¶
func (c Capabilities) JSON() (string, error)
JSON returns a JSON string representing the desired capabilities.
func (Capabilities) Platform ¶
func (c Capabilities) Platform(platform string) Capabilities
Platform sets the desired browser platform. Possible values:
{WINDOWS|XP|VISTA|MAC|LINUX|UNIX|ANDROID|ANY}.
func (Capabilities) Proxy ¶
func (c Capabilities) Proxy(p ProxyConfig) Capabilities
Proxy sets the desired proxy configuration.
func (Capabilities) Version ¶
func (c Capabilities) Version(version string) Capabilities
Version sets the desired browser version (ex. "3.6").
func (Capabilities) With ¶
func (c Capabilities) With(feature string) Capabilities
With enables the provided feature (ex. "trustAllSSLCertificates").
func (Capabilities) Without ¶
func (c Capabilities) Without(feature string) Capabilities
Without disables the provided feature (ex. "javascriptEnabled").
type Log ¶
type Log struct { // Message is the text of the log message. Message string // Location is the code location of the log message, if present Location string // Level is the log level ("DEBUG", "INFO", "WARNING", or "SEVERE"). Level string // Time is the time the message was logged. Time time.Time }
A Log represents a single log message
type MultiSelection ¶
type MultiSelection struct {
Selection
}
A MultiSelection is a Selection that may be indexed using the At() method. All Selection methods are available on a MultiSelection.
A Selection returned by At() may still refer to multiple elements if any parent of the MultiSelection refers to multiple elements.
Examples:
selection.All("section").All("form").At(1).Submit()
Submits the second form in each section.
selection.All("div").Find("h1").Click()
Clicks one h1 in each div, failing if any div does not contain exactly one h1.
func (*MultiSelection) All ¶
func (s *MultiSelection) All(selector string) *MultiSelection
All finds zero or more elements by CSS selector.
func (*MultiSelection) AllByButton ¶
func (s *MultiSelection) AllByButton(text string) *MultiSelection
AllByButton finds zero or more button elements with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*MultiSelection) AllByClass ¶
func (s *MultiSelection) AllByClass(text string) *MultiSelection
AllByClass finds zero or more elements with a given CSS class.
func (*MultiSelection) AllByID ¶
func (s *MultiSelection) AllByID(text string) *MultiSelection
AllByID finds zero or more elements with a given ID.
func (*MultiSelection) AllByLabel ¶
func (s *MultiSelection) AllByLabel(text string) *MultiSelection
AllByLabel finds zero or more elements by associated label text.
func (*MultiSelection) AllByLink ¶
func (s *MultiSelection) AllByLink(text string) *MultiSelection
AllByLink finds zero or more anchor elements by their text content.
func (*MultiSelection) AllByName ¶
func (s *MultiSelection) AllByName(name string) *MultiSelection
AllByName finds zero or more elements with the provided name attribute.
func (*MultiSelection) AllByXPath ¶
func (s *MultiSelection) AllByXPath(selector string) *MultiSelection
AllByXPath finds zero or more elements by XPath selector.
func (*MultiSelection) At ¶
func (s *MultiSelection) At(index int) *Selection
At finds an element at the provided index. It only applies to the immediate selection, meaning that the returned selection may still refer to multiple elements if any parent of the immediate selection is also a *MultiSelection.
func (*MultiSelection) FindByButton ¶
FindByButton finds exactly one button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*MultiSelection) FindByClass ¶
FindByClass finds exactly one element with a given CSS class.
func (*MultiSelection) FindByLabel ¶
FindByLabel finds exactly one element by associated label text.
func (*MultiSelection) FindByLink ¶
FindByLink finds exactly one anchor element by its text content.
func (*MultiSelection) FindByName ¶
FindByName finds exactly element with the provided name attribute.
func (*MultiSelection) FindByXPath ¶
FindByXPath finds exactly one element by XPath selector.
func (*MultiSelection) FindForAppium ¶
FirstByClass finds the first element with a given CSS class.
func (*MultiSelection) FirstByButton ¶
FirstByButton finds the first button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*MultiSelection) FirstByClass ¶
FirstByClass finds the first element with a given CSS class.
func (*MultiSelection) FirstByLabel ¶
FirstByLabel finds the first element by associated label text.
func (*MultiSelection) FirstByLink ¶
FirstByLink finds the first anchor element by its text content.
func (*MultiSelection) FirstByName ¶
FirstByName finds the first element with the provided name attribute.
func (*MultiSelection) FirstByXPath ¶
FirstByXPath finds the first element by XPath selector.
type Option ¶
type Option func(*config)
An Option specifies configuration for a new WebDriver or Page.
Debug is an Option that connects the running WebDriver to stdout and stdin.
RejectInvalidSSL is an Option specifying that the WebDriver should reject invalid SSL certificates. All WebDrivers should accept invalid SSL certificates by default. See: http://www.w3.org/TR/webdriver/#invalid-ssl-certificates
func ChromeOptions ¶
ChromeOptions is used to pass additional options to Chrome via ChromeDriver.
func Desired ¶
func Desired(capabilities Capabilities) Option
Desired provides an Option for specifying desired WebDriver Capabilities.
func HTTPClient ¶
HTTPClient provides an Option for specifying a *http.Client
type Page ¶
type Page struct {
// contains filtered or unexported fields
}
A Page represents an open browser session. Pages may be created using the *WebDriver.Page() method or by calling the NewPage or SauceLabs functions.
func NewPage ¶
NewPage opens a Page using the provided WebDriver URL. This method takes the same Options as *WebDriver.NewPage. Unlike *WebDriver.NewPage, this method will respect the HTTPClient Option if provided.
func SauceLabs ¶
func SauceLabs(name, platform, browser, version, username, accessKey string, options ...Option) (*Page, error)
SauceLabs opens a Sauce Labs session and returns a *Page. Does not support Sauce Connect.
This method takes the same Options as NewPage. Passing the Desired Option will completely override the provided name, platform, browser, and version.
func (*Page) All ¶
func (s *Page) All(selector string) *MultiSelection
All finds zero or more elements by CSS selector.
func (*Page) AllByButton ¶
func (s *Page) AllByButton(text string) *MultiSelection
AllByButton finds zero or more button elements with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Page) AllByClass ¶
func (s *Page) AllByClass(text string) *MultiSelection
AllByClass finds zero or more elements with a given CSS class.
func (*Page) AllByID ¶
func (s *Page) AllByID(text string) *MultiSelection
AllByID finds zero or more elements with a given ID.
func (*Page) AllByLabel ¶
func (s *Page) AllByLabel(text string) *MultiSelection
AllByLabel finds zero or more elements by associated label text.
func (*Page) AllByLink ¶
func (s *Page) AllByLink(text string) *MultiSelection
AllByLink finds zero or more anchor elements by their text content.
func (*Page) AllByName ¶
func (s *Page) AllByName(name string) *MultiSelection
AllByName finds zero or more elements with the provided name attribute.
func (*Page) AllByXPath ¶
func (s *Page) AllByXPath(selector string) *MultiSelection
AllByXPath finds zero or more elements by XPath selector.
func (*Page) CancelPopup ¶
CancelPopup cancels an alert, confirm, or prompt popup.
func (*Page) ClearCookies ¶
ClearCookies deletes all cookies on the page.
func (*Page) Click ¶
Click performs the provided Click event using the provided Button at the current mouse position.
func (*Page) ConfirmPopup ¶
ConfirmPopup confirms an alert, confirm, or prompt popup.
func (*Page) DeleteCookie ¶
DeleteCookie deletes a cookie on the page by name.
func (*Page) DoubleClick ¶
DoubleClick double clicks the left mouse button at the current mouse position.
func (*Page) EnterPopupText ¶
EnterPopupText enters text into an open prompt popup.
func (*Page) FindByButton ¶
FindByButton finds exactly one button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Page) FindByClass ¶
FindByClass finds exactly one element with a given CSS class.
func (*Page) FindByLabel ¶
FindByLabel finds exactly one element by associated label text.
func (*Page) FindByLink ¶
FindByLink finds exactly one anchor element by its text content.
func (*Page) FindByName ¶
FindByName finds exactly element with the provided name attribute.
func (*Page) FindByXPath ¶
FindByXPath finds exactly one element by XPath selector.
func (*Page) FindForAppium ¶
FirstByClass finds the first element with a given CSS class.
func (*Page) FirstByButton ¶
FirstByButton finds the first button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Page) FirstByClass ¶
FirstByClass finds the first element with a given CSS class.
func (*Page) FirstByLabel ¶
FirstByLabel finds the first element by associated label text.
func (*Page) FirstByLink ¶
FirstByLink finds the first anchor element by its text content.
func (*Page) FirstByName ¶
FirstByName finds the first element with the provided name attribute.
func (*Page) FirstByXPath ¶
FirstByXPath finds the first element by XPath selector.
func (*Page) GetCookies ¶
GetCookies returns all cookies on the page.
func (*Page) LogTypes ¶
LogTypes returns all of the valid log types that may be used with a LogReader.
func (*Page) MoveMouseBy ¶
MoveMouseBy moves the mouse by the provided offset.
func (*Page) NextWindow ¶
NextWindow switches to the next available window.
func (*Page) ReadAllLogs ¶
ReadAllLogs returns all log messages of the provided log type. For example, page.ReadAllLogs("browser") returns browser console logs, such as JavaScript logs and errors. All logs since the session was created are returned. Valid log types may be obtained using the LogTypes method.
func (*Page) ReadNewLogs ¶
ReadNewLogs returns new log messages of the provided log type. For example, page.ReadNewLogs("browser") returns browser console logs, such as JavaScript logs and errors. Only logs since the last call to ReadNewLogs are returned. Valid log types may be obtained using the LogTypes method.
func (*Page) Reset ¶
Reset deletes all cookies set for the current domain and navigates to a blank page. Unlike Destroy, Reset will permit the page to be re-used after it is called. Reset is faster than Destroy, but any cookies from domains outside the current domain will remain after a page is reset.
func (*Page) RunScript ¶
RunScript runs the JavaScript provided in the body. Any keys present in the arguments map will be available as variables in the body. Values provided in arguments are converted into javascript objects. If the body returns a value, it will be unmarshalled into the result argument. Simple example:
var number int page.RunScript("return test;", map[string]interface{}{"test": 100}, &number) fmt.Println(number)
-> 100
func (*Page) Screenshot ¶
Screenshot takes a screenshot and saves it to the provided filename. The provided filename may be an absolute or relative path.
func (*Page) Session ¶
Session returns a *api.Session that can be used to send direct commands to the WebDriver. See: https://code.google.com/p/selenium/wiki/JsonWireProtocol
func (*Page) SetImplicitWait ¶
SetImplicitWait sets the implicit wait timeout (in ms)
func (*Page) SetPageLoad ¶
SetPageLoad sets the page load timeout (in ms)
func (*Page) SetScriptTimeout ¶
SetScriptTimeout sets the script timeout (in ms)
func (*Page) SwitchToParentFrame ¶
SwitchToParentFrame focuses on the immediate parent frame of a frame selected by Selection.Frame. After switching, all new and existing selections will refer to the parent frame. All further Page methods will apply to this frame as well.
This method is not supported by PhantomJS. Please use SwitchToRootFrame instead.
func (*Page) SwitchToRootFrame ¶
SwitchToRootFrame focuses on the original, default page frame before any calls to Selection.Frame were made. After switching, all new and existing selections will refer to the root frame. All further Page methods will apply to this frame as well.
func (*Page) SwitchToWindow ¶
SwitchToWindow switches to the first available window with the provided name (JavaScript `window.name` attribute).
func (*Page) WindowCount ¶
WindowCount returns the number of available windows.
type ProxyConfig ¶
type ProxyConfig struct { ProxyType string `json:"proxyType"` ProxyAutoconfigURL string `json:"proxyAutoconfigUrl,omitempty"` FTPProxy string `json:"ftpProxy,omitempty"` HTTPProxy string `json:"httpProxy,omitempty"` SSLProxy string `json:"sslProxy,omitempty"` SOCKSProxy string `json:"socksProxy,omitempty"` SOCKSUsername string `json:"socksUsername,omitempty"` SOCKSPassword string `json:"socksPassword,omitempty"` NoProxy string `json:"noProxy,omitempty"` }
A ProxyConfig instance defines the desired proxy configuration the WebDriver should use to proxy a Page.
ProxyType is required and defines the type of proxy being used Possible Values: {direct|manual|pac|autodetect|system}
See: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities#proxy-json-object
type Selection ¶
type Selection struct {
// contains filtered or unexported fields
}
Selection instances refer to a selection of elements. All Selection methods are also MultiSelection methods.
Methods that take selectors apply their selectors to each element in the selection they are called on. If the selection they are called on refers to multiple elements, the resulting selection will refer to at least that many elements.
Examples:
selection.Find("table").All("tr").At(2).First("td input[type=checkbox]").Check()
Checks the first checkbox in the third row of the only table.
selection.Find("table").All("tr").Find("td").All("input[type=checkbox]").Check()
Checks all checkboxes in the first-and-only cell of each row in the only table.
func (*Selection) Active ¶
Active returns true if the single element that the selection refers to is active.
func (*Selection) All ¶
func (s *Selection) All(selector string) *MultiSelection
All finds zero or more elements by CSS selector.
func (*Selection) AllByButton ¶
func (s *Selection) AllByButton(text string) *MultiSelection
AllByButton finds zero or more button elements with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Selection) AllByClass ¶
func (s *Selection) AllByClass(text string) *MultiSelection
AllByClass finds zero or more elements with a given CSS class.
func (*Selection) AllByID ¶
func (s *Selection) AllByID(text string) *MultiSelection
AllByID finds zero or more elements with a given ID.
func (*Selection) AllByLabel ¶
func (s *Selection) AllByLabel(text string) *MultiSelection
AllByLabel finds zero or more elements by associated label text.
func (*Selection) AllByLink ¶
func (s *Selection) AllByLink(text string) *MultiSelection
AllByLink finds zero or more anchor elements by their text content.
func (*Selection) AllByName ¶
func (s *Selection) AllByName(name string) *MultiSelection
AllByName finds zero or more elements with the provided name attribute.
func (*Selection) AllByXPath ¶
func (s *Selection) AllByXPath(selector string) *MultiSelection
AllByXPath finds zero or more elements by XPath selector.
func (*Selection) Check ¶
Check checks all of the unchecked checkboxes that the selection refers to.
func (*Selection) DoubleClick ¶
DoubleClick double-clicks on all of the elements that the selection refers to.
func (*Selection) Elements ¶
Elements returns a []*api.Element that can be used to send direct commands to WebDriver elements. See: https://code.google.com/p/selenium/wiki/JsonWireProtocol
func (*Selection) Enabled ¶
Enabled returns true if all of the elements that the selection refers to are enabled.
func (*Selection) EqualsElement ¶
EqualsElement returns whether or not two selections of exactly one element refer to the same element.
func (*Selection) Fill ¶
Fill fills all of the fields the selection refers to with the provided text.
func (*Selection) FindByButton ¶
FindByButton finds exactly one button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Selection) FindByClass ¶
FindByClass finds exactly one element with a given CSS class.
func (*Selection) FindByLabel ¶
FindByLabel finds exactly one element by associated label text.
func (*Selection) FindByLink ¶
FindByLink finds exactly one anchor element by its text content.
func (*Selection) FindByName ¶
FindByName finds exactly element with the provided name attribute.
func (*Selection) FindByXPath ¶
FindByXPath finds exactly one element by XPath selector.
func (*Selection) FindForAppium ¶
FirstByClass finds the first element with a given CSS class.
func (*Selection) FirstByButton ¶
FirstByButton finds the first button element with the provided text. Supports <button>, <input type="button">, and <input type="submit">.
func (*Selection) FirstByClass ¶
FirstByClass finds the first element with a given CSS class.
func (*Selection) FirstByLabel ¶
FirstByLabel finds the first element by associated label text.
func (*Selection) FirstByLink ¶
FirstByLink finds the first anchor element by its text content.
func (*Selection) FirstByName ¶
FirstByName finds the first element with the provided name attribute.
func (*Selection) FirstByXPath ¶
FirstByXPath finds the first element by XPath selector.
func (*Selection) FlickFinger ¶
FlickFinger performs a flick touch action by the provided offset and at the provided speed on exactly one element.
func (*Selection) MouseToElement ¶
MouseToElement moves the mouse over exactly one element in the selection.
func (*Selection) ScrollFinger ¶
ScrollFinger performs a scroll touch action by the provided offset on exactly one element.
func (*Selection) Select ¶
Select may be called on a selection of any number of <select> elements to select any <option> elements under those <select> elements that match the provided text.
func (*Selection) Selected ¶
Selected returns true if all of the elements that the selection refers to are selected.
func (*Selection) String ¶
String returns a string representation of the selection, ex.
selection 'CSS: .some-class | XPath: //table [3] | Link "click me" [single]'
func (*Selection) Submit ¶
Submit submits all selected forms. The selection may refer to a form itself or any input element contained within a form.
func (*Selection) SwitchToFrame ¶
SwitchToFrame focuses on the frame specified by the selection. All new and existing selections will refer to the new frame. All further Page methods will apply to this frame as well.
func (*Selection) Touch ¶
Touch performs the provided Touch event at the location of each element in the selection.
func (*Selection) Uncheck ¶
Uncheck unchecks all of the checked checkboxes that the selection refers to.
func (*Selection) UploadFile ¶
UploadFile uploads the provided file to all selected <input type="file" />. The provided filename may be a relative or absolute path. Returns an error if elements of any other type are in the selection.
type WebDriver ¶
A WebDriver controls a WebDriver process. This struct embeds api.WebDriver, which provides Start and Stop methods for starting and stopping the process.
func ChromeDriver ¶
ChromeDriver returns an instance of a ChromeDriver WebDriver.
Provided Options will apply as default arguments for new pages. New pages will accept invalid SSL certificates by default. This may be disabled using the RejectInvalidSSL Option.
func EdgeDriver ¶
EdgeDriver returns an instance of a EdgeDriver WebDriver.
Provided Options will apply as default arguments for new pages. New pages will accept invalid SSL certificates by default. This may be disabled using the RejectInvalidSSL Option.
func NewWebDriver ¶
NewWebDriver returns an instance of a WebDriver specified by a templated URL and command. The URL should be the location of the WebDriver Wire Protocol web service brought up by the command. The command should be provided as a list of arguments (each of which are templated).
The Timeout Option specifies how many seconds to wait for the web service to become available. The default timeout is 5 seconds.
The HTTPClient Option specifies a *http.Client to use for all WebDriver communications. The default client is http.DefaultClient.
Any other provided Options are treated as default Options for new pages.
Valid template parameters are:
{{.Host}} - local address to bind to (usually 127.0.0.1) {{.Port}} - arbitrary free port on the local address {{.Address}} - {{.Host}}:{{.Port}}
Selenium JAR example:
command := []string{"java", "-jar", "selenium-server.jar", "-port", "{{.Port}}"} agouti.NewWebDriver("http://{{.Address}}/wd/hub", command)
func PhantomJS ¶
PhantomJS returns an instance of a PhantomJS WebDriver.
Provided Options will apply as default arguments for new pages. New pages will accept invalid SSL certificates by default. This may be disabled using the RejectInvalidSSL Option.
The RejectInvalidSSL Option must be provided to the PhantomJS function (and not the NewPage method) for this Option to take effect on any PhantomJS page.
func Selendroid ¶
Selendroid returns an instance of a Selendroid WebDriver.
Provided Options will apply as default arguments for new pages. New pages will accept invalid SSL certificates by default. This may be disabled using the RejectInvalidSSL Option.
The jarFile is a relative or absolute path to Selendroid JAR file. Selendroid will return nil if an invalid path is provided.
func Selenium ¶
Selenium returns an instance of a Selenium WebDriver.
Provided Options will apply as default arguments for new pages. New pages will accept invalid SSL certificates by default. This may be disabled using the RejectInvalidSSL Option.
func (*WebDriver) NewPage ¶
NewPage returns a *Page that corresponds to a new WebDriver session. Provided Options configure the page. For instance, to disable JavaScript:
capabilities := agouti.NewCapabilities().Without("javascriptEnabled") driver.NewPage(agouti.Desired(capabilities))
For Selenium, a Browser Option (or a Desired Option with Capabilities that specify a Browser) must be provided. For instance:
seleniumDriver.NewPage(agouti.Browser("safari"))
Specific Options (such as Browser) have precedence over Capabilities specified by the Desired Option.
The HTTPClient Option will be ignored if passed to this function. New pages will always use the *http.Client provided to their WebDriver, or http.DefaultClient if none was provided.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package api provides a generic, low-level WebDriver API client for Go.
|
Package api provides a generic, low-level WebDriver API client for Go. |
internal
|
|
Package matchers provides a set of Gomega-compatible matchers for use with the agouti package.
|
Package matchers provides a set of Gomega-compatible matchers for use with the agouti package. |