Documentation
¶
Index ¶
- Constants
- Variables
- func ElementIsNotPresent(by By, value string) func(f Finder) (bool, *WebElement, error)
- func ElementIsPresent(by By, value string) func(f Finder) (bool, *WebElement, error)
- type ActionSequence
- type By
- type ByStrategy
- type Capabilities
- type Client
- func (c *Client) AcceptAlert() error
- func (c *Client) AddCookie(cookie Cookie) (*Response, error)
- func (c *Client) Back() error
- func (c *Client) CloseChromeWindow() (*Response, error)
- func (c *Client) CloseWindow() (*Response, error)
- func (c *Client) Connect(host string, port int) error
- func (c *Client) Context() (*Response, error)
- func (c *Client) DeleteAllCookies() error
- func (c *Client) DeleteCookie(name string) (error, error)
- func (c *Client) DeleteSession() error
- func (c *Client) DismissAlert() error
- func (c *Client) ExecuteAsyncScript(script string, args []any, newSandbox bool) (*Response, error)
- func (c *Client) ExecuteScript(script string, args []any, timeout uint, newSandbox bool) (*Response, error)
- func (c *Client) FindElement(by By, value string) (*WebElement, error)
- func (c *Client) FindElements(by By, value string) ([]*WebElement, error)
- func (c *Client) Forward() error
- func (c *Client) FullscreenWindow() (rect *WindowRect, err error)
- func (c *Client) GetActiveElement() (*WebElement, error)
- func (c *Client) GetCapabilities() (*Capabilities, error)
- func (c *Client) GetCookies() ([]Cookie, error)
- func (c *Client) GetTimeouts() (map[string]uint, error)
- func (c *Client) GetWindowHandle() (string, error)
- func (c *Client) GetWindowHandles() ([]string, error)
- func (c *Client) GetWindowRect() (rect *WindowRect, err error)
- func (c *Client) MaximizeWindow() (rect *WindowRect, err error)
- func (c *Client) MinimizeWindow() (rect *WindowRect, err error)
- func (c *Client) Navigate(url string) (*Response, error)
- func (c *Client) NewSession(sessionId string, cap *Capabilities) (*Response, error)
- func (c *Client) NewWindow(focus bool, typ string, private bool) (*Response, error)
- func (c *Client) PageSource() (*Response, error)
- func (c *Client) PerformActions(actions ...ActionSequence) (*Response, error)
- func (c *Client) Quit() (*Response, error)
- func (c *Client) Refresh() error
- func (c *Client) ReleaseActions() (*Response, error)
- func (c *Client) Screenshot() (string, error)
- func (c *Client) SendAlertText(keys string) error
- func (c *Client) SessionID() string
- func (c *Client) SetContext(value Context) (*Response, error)
- func (c *Client) SetImplicitTimout(milliseconds int) (*Response, error)
- func (c *Client) SetPageLoadTimeout(milliseconds int) (*Response, error)
- func (c *Client) SetScriptTimeout(milliseconds int) (*Response, error)
- func (c *Client) SetTimeouts(data map[string]int) (*Response, error)
- func (c *Client) SetWindowRect(rect WindowRect) error
- func (c *Client) SwitchToFrame(by By, value string) error
- func (c *Client) SwitchToParentFrame() error
- func (c *Client) SwitchToWindow(name string) error
- func (c *Client) TextFromAlert() (string, error)
- func (c *Client) Title() (string, error)
- func (c *Client) Transport(t Transporter)
- func (c *Client) Url() (string, error)
- type Context
- type Cookie
- type Decoder
- type DecoderEncoder
- type DriverError
- type ElementRect
- type Encoder
- type Finder
- type KeyAction
- type MarionetteTransport
- type Navigator
- type Point
- type PointerAction
- type PointerOrigin
- type ProtoV3DecoderEncoder
- type Response
- type Size
- type Transporter
- type Waiter
- type WebElement
- func (e *WebElement) Attribute(name string) string
- func (e *WebElement) Clear()
- func (e *WebElement) Click()
- func (e *WebElement) CssValue(property string) string
- func (e *WebElement) Displayed() bool
- func (e *WebElement) Enabled() bool
- func (e *WebElement) FindElement(by By, value string) (*WebElement, error)
- func (e *WebElement) FindElements(by By, value string) ([]*WebElement, error)
- func (e *WebElement) GetActiveElement() (*WebElement, error)
- func (e *WebElement) Id() string
- func (e *WebElement) Location() (*Point, error)
- func (e *WebElement) Property(name string) string
- func (e *WebElement) Rect() (*ElementRect, error)
- func (e *WebElement) Screenshot() (string, error)
- func (e *WebElement) Selected() bool
- func (e *WebElement) SendKeys(keys ...string) error
- func (e *WebElement) Size() (*Size, error)
- func (e *WebElement) TagName() string
- func (e *WebElement) Text() string
- func (e *WebElement) UnmarshalJSON(data []byte) error
- type WindowRect
Constants ¶
const ( MarionetteProtocolV3 = 3 WebdriverElementKey = "element-6066-11e4-a52e-4f735466cecf" )
const ( KeyNull string = "\ue000" KeyCancel = "\ue001" KeyHelp = "\ue002" KeyBackspace = "\ue003" KeyBackSpace = KeyBackspace KeyTab = "\ue004" KeyClear = "\ue005" KeyReturn = "\ue006" KeyEnter = "\ue007" KeyShift = "\ue008" KeyLeftShift = KeyShift KeyControl = "\ue009" KeyLeftControl = KeyControl KeyAlt = "\ue00a" KeyLeftAlt = KeyAlt KeyPause = "\ue00b" KeyEscape = "\ue00c" KeySpace = "\ue00d" KeyPageUp = "\ue00e" KeyPageDown = "\ue00f" KeyEnd = "\ue010" KeyHome = "\ue011" KeyLeft = "\ue012" KeyArrowLeft = KeyLeft KeyUp = "\ue013" KeyArrowUp = KeyUp KeyRight = "\ue014" KeyArrowRight = KeyRight KeyDown = "\ue015" KeyArrowDown = KeyDown KeyInsert = "\ue016" KeyDelete = "\ue017" KeySemicolon = "\ue018" KeyEquals = "\ue019" KeyNumpad0 = "\ue01a" KeyNumpad1 = "\ue01b" KeyNumpad2 = "\ue01c" KeyNumpad3 = "\ue01d" KeyNumpad4 = "\ue01e" KeyNumpad5 = "\ue01f" KeyNumpad6 = "\ue020" KeyNumpad7 = "\ue021" KeyNumpad8 = "\ue022" KeyNumpad9 = "\ue023" KeyMultiply = "\ue024" KeyAdd = "\ue025" KeySeparator = "\ue026" KeySubtract = "\ue027" KeyDecimal = "\ue028" KeyDivide = "\ue029" KeyF1 = "\ue031" KeyF2 = "\ue032" KeyF3 = "\ue033" KeyF4 = "\ue034" KeyF5 = "\ue035" KeyF6 = "\ue036" KeyF7 = "\ue037" KeyF8 = "\ue038" KeyF9 = "\ue039" KeyF10 = "\ue03a" KeyF11 = "\ue03b" KeyF12 = "\ue03c" KeyMeta = "\ue03d" KeyLeftMeta = KeyMeta KeyCommand = KeyMeta KeyLeftCommand = KeyCommand KeyZenkakuHankaku = "\ue040" KeyRightShift = "\ue050" KeyRightControl = "\ue051" KeyRightAlt = "\ue052" KeyRightMeta = "\ue053" KeyLeftOption = KeyLeftAlt KeyRightOption = KeyRightAlt )
WebDriver special-key values use Unicode's private-use area as defined by the WebDriver specification.
Variables ¶
var RunningInDebugMode = false
Functions ¶
func ElementIsNotPresent ¶
func ElementIsPresent ¶
Types ¶
type ActionSequence ¶ added in v0.2.0
type ActionSequence struct {
// contains filtered or unexported fields
}
func KeyboardActions ¶ added in v0.2.2
func KeyboardActions(id string, actions ...KeyAction) ActionSequence
func MouseActions ¶ added in v0.2.0
func MouseActions(id string, actions ...PointerAction) ActionSequence
func (ActionSequence) MarshalJSON ¶ added in v0.2.0
func (s ActionSequence) MarshalJSON() ([]byte, error)
type By ¶
type By int
By strategy type to find elements in the DOM
const ( Id By = 1 + iota Name ClassName TagName CssSelector LinkText PartialLinkText Xpath Anon AnonAttribute )
The method to use to locate the element; one of:
"id", "name", "class name", "tag name", "css selector", "link text", "partial link text", "xpath", "anon" and "anon attribute". Note that the "name", "link text" and "partial link test" methods are not supported in the chrome DOM.
:param target: The target of the search. For example, if method =
"tag", target might equal "div". If method = "id", target would be an element id.
:param id: If specified, search for elements only inside the element
with the specified id.
type ByStrategy ¶ added in v0.1.0
type Capabilities ¶
type Capabilities struct {
BrowserName string
BrowserVersion string
PlatformName string
PlatformVersion string
SpecificationLevel uint
RaisesAccessibilityExceptions bool
Rotatable bool
AcceptSslCerts bool
TakesElementScreenshot bool
TakesScreenshot bool
Proxy any
Platform string
XULappId string
AppBuildId string
Device string
Version string
Command_id uint32
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) AcceptAlert ¶ added in v0.0.2
AcceptAlert accepts the dialog - like clicking Ok/Yes
func (*Client) CloseChromeWindow ¶ added in v0.1.0
CloseChromeWindow Close the currently selected chrome window.
If it is the last window currently open, the chrome window will not be closed to prevent a shutdown of Firefox. Instead, the returned list of chrome window handles is empty.
return []string Unique chrome window handles of remaining chrome windows.
error NoSuchWindowError Top-level browsing context has been discarded.
func (*Client) CloseWindow ¶
CloseWindow closes current window.
func (*Client) DeleteAllCookies ¶ added in v0.0.2
DeleteAllCookies Delete all cookies
func (*Client) DeleteCookie ¶ added in v0.0.2
DeleteCookie Deletes cookie by name
func (*Client) DeleteSession ¶
DeleteSession Marionette currently only accepts a session id, so if we call delete session can also close the TCP Connection
func (*Client) DismissAlert ¶ added in v0.0.2
DismissAlert dismisses the dialog - like clicking No/Cancel
func (*Client) ExecuteAsyncScript ¶ added in v0.0.4
ExecuteAsyncScript Execute JS Script Async TODO: Add missing arguments/options
func (*Client) ExecuteScript ¶
func (c *Client) ExecuteScript(script string, args []any, timeout uint, newSandbox bool) (*Response, error)
ExecuteScript Execute JS Script
func (*Client) FindElement ¶
func (c *Client) FindElement(by By, value string) (*WebElement, error)
FindElement Find an element using the indicated search strategy.
func (*Client) FindElements ¶
func (c *Client) FindElements(by By, value string) ([]*WebElement, error)
FindElements Find elements using the indicated search strategy.
func (*Client) FullscreenWindow ¶ added in v0.0.3
func (c *Client) FullscreenWindow() (rect *WindowRect, err error)
FullscreenWindow Synchronously sets the user agent window to full screen as if the user had done "View > Enter Full Screen"
func (*Client) GetActiveElement ¶ added in v0.0.5
func (c *Client) GetActiveElement() (*WebElement, error)
GetActiveElement Returns the page's active element.
func (*Client) GetCapabilities ¶ added in v0.0.3
func (c *Client) GetCapabilities() (*Capabilities, error)
GetCapabilities informs the client of which WebDriver features are supported by Firefox and Marionette. They are immutable for the length of the session.
func (*Client) GetCookies ¶ added in v0.0.2
GetCookies Get all cookies
func (*Client) GetTimeouts ¶ added in v0.0.3
GetTimeouts Get current set timeouts
func (*Client) GetWindowHandle ¶ added in v0.0.3
GetWindowHandle returns the current window Id
func (*Client) GetWindowHandles ¶ added in v0.0.3
GetWindowHandles return array of window Id currently opened
func (*Client) GetWindowRect ¶
func (c *Client) GetWindowRect() (rect *WindowRect, err error)
GetWindowRect gets window position and size
func (*Client) MaximizeWindow ¶
func (c *Client) MaximizeWindow() (rect *WindowRect, err error)
MaximizeWindow maximizes window.
func (*Client) MinimizeWindow ¶ added in v0.0.3
func (c *Client) MinimizeWindow() (rect *WindowRect, err error)
MinimizeWindow Synchronously minimizes the user agent window as if the user pressed the minimize button.
func (*Client) NewSession ¶
func (c *Client) NewSession(sessionId string, cap *Capabilities) (*Response, error)
NewSession create new session
func (*Client) NewWindow ¶ added in v0.0.3
NewWindow opens a new top-level browsing context window.
param: type string Optional type of the new top-level browsing context. Can be one of `tab` or `window`. Defaults to `tab`.
param: focus bool Optional flag if the new top-level browsing context should be opened in foreground (focused) or background (not focused). Defaults to false.
param: private bool Optional flag, which gets only evaluated for type `window`. True if the new top-level browsing context should be a private window. Defaults to false.
return {"handle": string, "type": string} Handle and type of the new browsing context.
func (*Client) PageSource ¶
PageSource get page source
func (*Client) PerformActions ¶ added in v0.2.0
func (c *Client) PerformActions(actions ...ActionSequence) (*Response, error)
func (*Client) ReleaseActions ¶ added in v0.2.2
ReleaseActions releases all depressed input-source actions and clears their state.
func (*Client) Screenshot ¶
Screenshot takes a screenshot of the page.
func (*Client) SendAlertText ¶ added in v0.0.2
SendAlertText sends text to a dialog
func (*Client) SetContext ¶
SetContext Sets the context of the subsequent commands to be either "chrome" or "content". Must be one of "chrome" or "content" only.
func (*Client) SetImplicitTimout ¶ added in v0.0.2
SetImplicitTimout Set timeout for searching for elements.
func (*Client) SetPageLoadTimeout ¶ added in v0.0.2
SetPageLoadTimeout Set timeout for page loading.
func (*Client) SetScriptTimeout ¶
SetScriptTimeout Set the timeout for asynchronous script execution.
func (*Client) SetTimeouts ¶ added in v0.0.2
SetTimeouts <h4>Timeouts object</h4>
<dl> <dt><code>script</code> (number) <dd>Determines when to interrupt a script that is being evaluates.
<dt><code>pageLoad</code> (number) <dd>Provides the timeout limit used to interrupt navigation of the
browsing context.
<dt><code>implicit</code> (number) <dd>Gives the timeout of when to abort when locating an element. </dl>
func (*Client) SetWindowRect ¶
func (c *Client) SetWindowRect(rect WindowRect) error
SetWindowRect sets window position and size
func (*Client) SwitchToFrame ¶
SwitchToFrame switch to frame - strategies: By(Id), By(Name) or name only.
func (*Client) SwitchToParentFrame ¶
SwitchToParentFrame switch to parent frame
func (*Client) SwitchToWindow ¶
SwitchToWindow switch to specific window.
func (*Client) TextFromAlert ¶ added in v0.0.2
TextFromAlert gets text from the dialog
func (*Client) Transport ¶
func (c *Client) Transport(t Transporter)
type DecoderEncoder ¶
func NewDecoderEncoder ¶
func NewDecoderEncoder(protoVersion int32) (DecoderEncoder, error)
type DriverError ¶
func (*DriverError) Error ¶
func (e *DriverError) Error() string
func (*DriverError) String ¶
func (e *DriverError) String() string
type ElementRect ¶
type Encoder ¶
type Encoder interface {
Encode(t Transporter, command string, values any) ([]byte, error)
}
type Finder ¶
type Finder interface {
FindElement(by By, value string) (*WebElement, error)
FindElements(by By, value string) ([]*WebElement, error)
}
type KeyAction ¶ added in v0.2.2
type KeyAction struct {
// contains filtered or unexported fields
}
func KeyDownAction ¶ added in v0.2.2
func KeyUpAction ¶ added in v0.2.2
func KeyboardPause ¶ added in v0.2.2
func (KeyAction) MarshalJSON ¶ added in v0.2.2
type MarionetteTransport ¶
type MarionetteTransport struct {
ApplicationType string
MarionetteProtocol int32
// contains filtered or unexported fields
}
func (*MarionetteTransport) Close ¶
func (t *MarionetteTransport) Close() error
func (*MarionetteTransport) Connect ¶
func (t *MarionetteTransport) Connect(host string, port int) error
func (*MarionetteTransport) MessageID ¶
func (t *MarionetteTransport) MessageID() int
func (*MarionetteTransport) Receive ¶
func (t *MarionetteTransport) Receive() ([]byte, error)
type PointerAction ¶ added in v0.2.0
type PointerAction struct {
// contains filtered or unexported fields
}
func Pause ¶ added in v0.2.0
func Pause(duration time.Duration) PointerAction
func PointerDown ¶ added in v0.2.0
func PointerDown(button int) PointerAction
func PointerMove ¶ added in v0.2.0
func PointerMove(x, y int, duration time.Duration, origin PointerOrigin) PointerAction
func PointerUp ¶ added in v0.2.0
func PointerUp(button int) PointerAction
func (PointerAction) MarshalJSON ¶ added in v0.2.0
func (a PointerAction) MarshalJSON() ([]byte, error)
type PointerOrigin ¶ added in v0.2.0
type PointerOrigin struct {
// contains filtered or unexported fields
}
func ElementOrigin ¶ added in v0.2.0
func ElementOrigin(element *WebElement) PointerOrigin
func PointerOriginCurrent ¶ added in v0.2.0
func PointerOriginCurrent() PointerOrigin
func ViewportOrigin ¶ added in v0.2.0
func ViewportOrigin() PointerOrigin
type ProtoV3DecoderEncoder ¶
type ProtoV3DecoderEncoder struct{}
func (ProtoV3DecoderEncoder) Decode ¶
func (e ProtoV3DecoderEncoder) Decode(buf []byte, r *Response) error
func (ProtoV3DecoderEncoder) Encode ¶
func (e ProtoV3DecoderEncoder) Encode(t Transporter, command string, values any) ([]byte, error)
type Response ¶
type Response struct {
MessageID int32
Size int32
Value string
DriverError *DriverError
}
type Transporter ¶
type Waiter ¶
type Waiter struct {
// contains filtered or unexported fields
}
func (*Waiter) Until ¶
func (w *Waiter) Until(f func(c Finder) (bool, *WebElement, error)) (bool, *WebElement, error)
type WebElement ¶
type WebElement struct {
// contains filtered or unexported fields
}
func (*WebElement) Attribute ¶
func (e *WebElement) Attribute(name string) string
func (*WebElement) Clear ¶
func (e *WebElement) Clear()
func (*WebElement) Click ¶
func (e *WebElement) Click()
func (*WebElement) CssValue ¶
func (e *WebElement) CssValue(property string) string
func (*WebElement) Displayed ¶
func (e *WebElement) Displayed() bool
func (*WebElement) Enabled ¶
func (e *WebElement) Enabled() bool
func (*WebElement) FindElement ¶
func (e *WebElement) FindElement(by By, value string) (*WebElement, error)
func (*WebElement) FindElements ¶
func (e *WebElement) FindElements(by By, value string) ([]*WebElement, error)
func (*WebElement) GetActiveElement ¶ added in v0.0.5
func (e *WebElement) GetActiveElement() (*WebElement, error)
func (*WebElement) Id ¶
func (e *WebElement) Id() string
func (*WebElement) Location ¶
func (e *WebElement) Location() (*Point, error)
func (*WebElement) Property ¶ added in v0.0.6
func (e *WebElement) Property(name string) string
func (*WebElement) Rect ¶
func (e *WebElement) Rect() (*ElementRect, error)
func (*WebElement) Screenshot ¶
func (e *WebElement) Screenshot() (string, error)
func (*WebElement) Selected ¶
func (e *WebElement) Selected() bool
func (*WebElement) SendKeys ¶
func (e *WebElement) SendKeys(keys ...string) error
func (*WebElement) Size ¶
func (e *WebElement) Size() (*Size, error)
func (*WebElement) TagName ¶
func (e *WebElement) TagName() string
func (*WebElement) Text ¶
func (e *WebElement) Text() string
func (*WebElement) UnmarshalJSON ¶
func (e *WebElement) UnmarshalJSON(data []byte) error