Documentation
¶
Overview ¶
Package webdriver provides a simple and incomplete WebDriver client for use by web test launcher.
Index ¶
- func ErrorError(err error) string
- func ErrorFromError(err, message string) error
- func ErrorFromStatus(status int, message string) error
- func ErrorHTTPStatus(err error) int
- func ErrorMessage(err error) string
- func ErrorStackTrace(err error) interface{}
- func ErrorStatus(err error) int
- func ErrorValue(err error) interface{}
- func IsWebDriverError(err error) bool
- func MarshalError(err error) ([]byte, error)
- type LogEntry
- type Rectangle
- type WebDriver
- type WebElement
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrorFromError ¶
ErrorFromError constructs a WebDriver error from an W3C error string and message.
func ErrorFromStatus ¶
ErrorFromStatus constructs a WebDriver error from an OSS status code and message.
func ErrorHTTPStatus ¶
ErrorHTTPStatus returns the HTTP status code that is associated with err.
func ErrorMessage ¶
ErrorMessage returns the WebDriver value for err.
func ErrorStackTrace ¶
func ErrorStackTrace(err error) interface{}
ErrorStackTrace returns the WebDriver value for err.
func ErrorStatus ¶
ErrorStatus returns the WebDriver status for err.
func ErrorValue ¶
func ErrorValue(err error) interface{}
ErrorValue returns the WebDriver value for err.
func IsWebDriverError ¶
IsWebDriverError returns true if err is a WebDriver Error.
func MarshalError ¶
MarshalError generates the WebDriver JSON wire protocol HTTP response body for err.
Types ¶
type LogEntry ¶
type LogEntry struct {
Timestamp float64 `json:"timestamp"`
Level string `json:"level"`
Message string `json:"message"`
}
LogEntry is an entry parsed from the logs retrieved from the remote WebDriver.
type Rectangle ¶
type Rectangle struct {
X float64 `json:"x"`
Y float64 `json:"y"`
Width float64 `json:"width"`
Height float64 `json:"height"`
}
Rectangle represents a window's position and size.
type WebDriver ¶
type WebDriver interface {
healthreporter.HealthReporter
// ExecuteScript executes script inside the browser's current execution context.
ExecuteScript(ctx context.Context, script string, args []interface{}, value interface{}) error
// ExecuteScriptAsync executes script asynchronously inside the browser's current execution context.
ExecuteScriptAsync(ctx context.Context, script string, args []interface{}, value interface{}) error
// ExecuteScriptAsyncWithTimeout executes the script asynchronously, but sets the script timeout to timeout before,
// and attempts to restore it to its previous value after.
ExecuteScriptAsyncWithTimeout(ctx context.Context, timeout time.Duration, script string, args []interface{}, value interface{}) error
// Quit closes the WebDriver session.
Quit(context.Context) error
// CommandURL builds a fully resolved URL for the specified end-point.
CommandURL(endpoint ...string) (*url.URL, error)
// SetScriptTimeout sets the timeout for the callback of an ExecuteScriptAsync call to be called.
SetScriptTimeout(context.Context, time.Duration) error
// Logs gets logs of the specified type from the remote end.
Logs(ctx context.Context, logType string) ([]LogEntry, error)
// SessionID returns the id for this session.
SessionID() string
// Address returns the base address for this sessions (ending with session/<SessionID>)
Address() *url.URL
// Capabilities returns the capabilities returned from the remote end when session was created.
Capabilities() map[string]interface{}
// Screenshot takes a screenshot of the current browser window.
Screenshot(context.Context) (image.Image, error)
// WindowHandles returns a slice of the current window handles.
WindowHandles(context.Context) ([]string, error)
// ElementFromID returns a new WebElement object for the given id.
ElementFromID(string) WebElement
// ElementFromMap returns a new WebElement from a map representing a JSON object.
ElementFromMap(map[string]interface{}) (WebElement, error)
// GetWindowRect returns the current windows size and location.
GetWindowRect(context.Context) (Rectangle, error)
// SetWindowRect sets the current window size and location.
SetWindowRect(context.Context, Rectangle) error
// SetWindowSize sets the current window size.
SetWindowSize(ctx context.Context, width, height float64) error
// SetWindowPosition sest the current window position.
SetWindowPosition(ctx context.Context, x, y float64) error
// W3C return true iff connected to a W3C compliant remote end.
W3C() bool
// CurrentURL returns the URL that the current browser window is looking at.
CurrentURL(context.Context) (*url.URL, error)
// PageSource returns the source of the current browsing context active document.
PageSource(context.Context) (string, error)
NavigateTo(context.Context, *url.URL) error
}
WebDriver provides access to a running WebDriver session
func CreateSession ¶
func CreateSession(ctx context.Context, addr string, attempts int, requestedCaps *capabilities.Capabilities) (WebDriver, error)
CreateSession creates a new WebDriver session with desired capabilities from server at addr and ensures that the browser connection is working. It retries up to attempts - 1 times.
type WebElement ¶
type WebElement interface {
// ID returns the WebDriver element id.
ID() string
// ToMap returns a Map representation of a WebElement suitable for use in other WebDriver commands.
ToMap() map[string]string
// ScrollIntoView scrolls a WebElement to the top of the browsers viewport.
ScrollIntoView(ctx context.Context) error
// Bounds returns the bounds of the WebElement within the viewport.
// This will not scroll the element into the viewport first.
// Will return an error if the element is not in the viewport.
Bounds(ctx context.Context) (image.Rectangle, error)
}
WebElement provides access to a specific DOM element in a WebDriver session.