Documentation ¶
Index ¶
- Constants
- Variables
- func Attribute[T any](e *WebElement, name string) (T, error)
- func ElementIsNotPresent(by By, value string) func(f Finder) (bool, *WebElement, error)
- func ElementIsPresent(by By, value string) func(f Finder) (bool, *WebElement, error)
- func Property[T any](e *WebElement, name string) (T, error)
- type By
- 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(ctx context.Context, addr string) 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) DownloadImage(ctx context.Context, src string) (image.Image, error)
- func (c *Client) ExecuteAsyncScript(script string, args []any, newSandbox bool) (*Response, error)
- func (c *Client) ExecuteScript(script string, args []any, timeout time.Duration, 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() (*WindowRect, error)
- func (c *Client) MinimizeWindow() (*WindowRect, 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() (string, error)
- func (c *Client) Quit() (*Response, error)
- func (c *Client) Refresh() error
- func (c *Client) Screenshot() ([]byte, error)
- func (c *Client) ScreenshotImage() (image.Image, 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(timeout time.Duration) (*Response, error)
- func (c *Client) SetPageLoadTimeout(timeout time.Duration) (*Response, error)
- func (c *Client) SetScriptTimeout(timeout time.Duration) (*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(tr *Transport)
- func (c *Client) URL() (string, error)
- type Codec
- type Context
- type Cookie
- type Decoder
- type DriverError
- type ElementRect
- type Encoder
- type Finder
- type Navigator
- type Point
- type ProtoV3
- type Response
- type Size
- type Transport
- func (t *Transport) Close() error
- func (t *Transport) Connect(ctx context.Context, addr string) error
- func (t *Transport) MessageID() int
- func (t *Transport) Receive() ([]byte, error)
- func (t *Transport) Send(command string, values any) (*Response, error)
- func (t *Transport) SendAndDecode(dest any, command string, values any) error
- type Waiter
- type WebElement
- func (e *WebElement) Attribute(name string) (string, error)
- func (e *WebElement) Clear()
- func (e *WebElement) Click()
- func (e *WebElement) CssValue(property string) (any, error)
- 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) (any, error)
- func (e *WebElement) PropertyFloat(name string) (float64, error)
- func (e *WebElement) PropertyInt(name string) (int, error)
- func (e *WebElement) PropertyRaw(name string) (json.RawMessage, error)
- func (e *WebElement) PropertyString(name string) (string, error)
- func (e *WebElement) Rect() (*ElementRect, error)
- func (e *WebElement) Screenshot() ([]byte, error)
- func (e *WebElement) ScreenshotImage() (image.Image, 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 ( MARIONETTE_PROTOCOL_V3 = 3 WEBDRIVER_ELEMENT_KEY = "element-6066-11e4-a52e-4f735466cecf" )
Variables ¶
var RunningInDebugMode = false
Functions ¶
func ElementIsNotPresent ¶
func ElementIsPresent ¶
Types ¶
type By ¶
type By int
By is a strategy type to find elements in the DOM.
const ( ID By = 1 + iota NAME CLASS_NAME TAG_NAME CSS_SELECTOR LINK_TEXT PARTIAL_LINK_TEXT XPATH ANON ANON_ATTRIBUTE )
:param method: 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 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 { SessionId string Capabilities Capabilities // contains filtered or unexported fields }
func (*Client) AcceptAlert ¶
AcceptAlert accepts the dialog - like clicking Ok/Yes
func (*Client) CloseChromeWindow ¶
CloseChromeWindow closes 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 ¶
DeleteAllCookies Delete all cookies
func (*Client) DeleteCookie ¶
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 ¶
DismissAlert dismisses the dialog - like clicking No/Cancel
func (*Client) DownloadImage ¶
DownloadImage opens an image URL in the current tab and downloads it.
func (*Client) ExecuteAsyncScript ¶
ExecuteAsyncScript Execute JS Script Async TODO: Add missing arguments/options
func (*Client) ExecuteScript ¶
func (c *Client) ExecuteScript(script string, args []any, timeout time.Duration, 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 ¶
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 ¶
func (c *Client) GetActiveElement() (*WebElement, error)
GetActiveElement Returns the page's active element.
func (*Client) GetCapabilities ¶
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 ¶
GetCookies Get all cookies
func (*Client) GetTimeouts ¶
Get Timeouts Get current set timeouts
func (*Client) GetWindowHandle ¶
GetWindowHandle returns the current window ID
func (*Client) GetWindowHandles ¶
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() (*WindowRect, error)
MaximizeWindow maximizes window.
func (*Client) MinimizeWindow ¶
func (c *Client) MinimizeWindow() (*WindowRect, 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 ¶
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) Screenshot ¶
Screenshot takes a screenshot of the page.
func (*Client) ScreenshotImage ¶
ScreenshotImage takes a screenshot of the page.
func (*Client) SendAlertText ¶
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 ¶
SetImplicitTimout Set timeout for searching for elements.
func (*Client) SetPageLoadTimeout ¶
SetPageLoadTimeout Set timeout for page loading.
func (*Client) SetScriptTimeout ¶
SetScriptTimeout Set the timeout for asynchronous script execution.
func (*Client) SetTimeouts ¶
SetTimeouts sets timeouts object.
<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 ¶
TextFromAlert gets text from the dialog
type Codec ¶
func NewDecoderEncoder ¶
type DriverError ¶
func (*DriverError) Error ¶
func (e *DriverError) Error() string
func (*DriverError) String ¶
func (e *DriverError) String() string
type ElementRect ¶
type Finder ¶
type Finder interface { FindElement(by By, value string) (*WebElement, error) FindElements(by By, value string) ([]*WebElement, error) }
type Response ¶
type Response struct { MessageID int32 Size int32 Value string DriverError *DriverError }
type Transport ¶
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) Clear ¶
func (e *WebElement) Clear()
func (*WebElement) Click ¶
func (e *WebElement) Click()
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 ¶
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) PropertyFloat ¶
func (e *WebElement) PropertyFloat(name string) (float64, error)
func (*WebElement) PropertyInt ¶
func (e *WebElement) PropertyInt(name string) (int, error)
func (*WebElement) PropertyRaw ¶
func (e *WebElement) PropertyRaw(name string) (json.RawMessage, error)
func (*WebElement) PropertyString ¶
func (e *WebElement) PropertyString(name string) (string, error)
func (*WebElement) Rect ¶
func (e *WebElement) Rect() (*ElementRect, error)
func (*WebElement) Screenshot ¶
func (e *WebElement) Screenshot() ([]byte, error)
func (*WebElement) ScreenshotImage ¶
func (e *WebElement) ScreenshotImage() (image.Image, 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