package
0.0.0-20220916014248-b75f2bf2800b
Repository: https://github.com/dsmontoya/webdriver.git
Documentation: pkg.go.dev

# README

Go API client for api

Selenium WebDriver API specification

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 1.0.0
  • Package version: 1.0.0
  • Build package: com.github.dsmontoya.webdriver.GoCustomGenerator

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import api "github.com/dsmontoya/webdriver"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value sw.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), api.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), api.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), api.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), api.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to http://localhost:4444/wd/hub

ClassMethodHTTP requestDescription
ActionsApiPerformActionsPost /session/{sessionId}/actionsPerform actions
ActionsApiReleaseActionsDelete /session/{sessionId}/actionsRelease actions
AerokubeApiDeleteRemoteFileDelete /session/{sessionId}/aerokube/download/{fileName}Deletes file in remote container with browser
AerokubeApiDownloadRemoteFileGet /session/{sessionId}/aerokube/download/{fileName}Downloads file from remote container with browser
AerokubeApiGetClipboardGet /session/{sessionId}/aerokube/clipboardReturns clipboard contents
AerokubeApiListRemoteFilesGet /session/{sessionId}/aerokube/downloadLists files in remote container with browser
AerokubeApiUpdateClipboardPost /session/{sessionId}/aerokube/clipboardUpdates clipboard contents
ContextsApiCloseWindowDelete /session/{sessionId}/windowCloses current window
ContextsApiCreateNewWindowPost /session/{sessionId}/window/newCreates a new window or tab
ContextsApiFullscreenWindowPost /session/{sessionId}/window/fullscreenFullscreen window
ContextsApiGetWindowHandleGet /session/{sessionId}/windowReturns current window handle
ContextsApiGetWindowHandlesGet /session/{sessionId}/window/handlesReturns all window handles
ContextsApiGetWindowRectGet /session/{sessionId}/window/rectGet window size
ContextsApiMaximizeWindowPost /session/{sessionId}/window/maximizeMaximize window
ContextsApiMinimizeWindowPost /session/{sessionId}/window/minimizeMinimize window
ContextsApiSetWindowRectPost /session/{sessionId}/window/rectSet window rect
ContextsApiSwitchToFramePost /session/{sessionId}/frameSwitch to frame
ContextsApiSwitchToParentFramePost /session/{sessionId}/frame/parentSwitch to parent frame
ContextsApiSwitchToWindowPost /session/{sessionId}/windowSwitches to window
CookiesApiAddCookiePost /session/{sessionId}/cookieAdd cookie
CookiesApiDeleteAllCookiesDelete /session/{sessionId}/cookieDelete all cookies
CookiesApiDeleteCookieDelete /session/{sessionId}/cookie/{name}Delete cookie
CookiesApiGetAllCookiesGet /session/{sessionId}/cookieGet all cookies
CookiesApiGetNamedCookieGet /session/{sessionId}/cookie/{name}Get named cookie
DocumentApiExecuteScriptPost /session/{sessionId}/execute/syncExecute script
DocumentApiExecuteScriptAsyncPost /session/{sessionId}/execute/asyncExecute script asynchronously
DocumentApiGetPageSourceGet /session/{sessionId}/sourceGet page source
DocumentApiUploadFilePost /session/{sessionId}/fileUpload file
ElementsApiElementClearPost /session/{sessionId}/element/{elementId}/clearClear element
ElementsApiElementClickPost /session/{sessionId}/element/{elementId}/clickClick on element
ElementsApiElementSendKeysPost /session/{sessionId}/element/{elementId}/valueSend keys to element
ElementsApiFindElementPost /session/{sessionId}/elementFind element
ElementsApiFindElementFromElementPost /session/{sessionId}/element/{elementId}/elementFind element from element
ElementsApiFindElementsPost /session/{sessionId}/elementsFind elements
ElementsApiFindElementsFromElementPost /session/{sessionId}/element/{elementId}/elementsFind elements from element
ElementsApiGetActiveElementGet /session/{sessionId}/element/activeGet active element
ElementsApiGetElementAttributeGet /session/{sessionId}/element/{elementId}/attribute/{name}Get element attribute
ElementsApiGetElementCSSPropertyGet /session/{sessionId}/element/{elementId}/css/{propertyName}Get element CSS property
ElementsApiGetElementComputedLabelGet /session/{sessionId}/element/{elementId}/computedlabelGet element computed accessibility label
ElementsApiGetElementComputedRoleGet /session/{sessionId}/element/{elementId}/computedroleGet element computed accessibility role
ElementsApiGetElementPropertyGet /session/{sessionId}/element/{elementId}/property/{name}Get element property
ElementsApiGetElementRectGet /session/{sessionId}/element/{elementId}/rectGet element rect
ElementsApiGetElementTagNameGet /session/{sessionId}/element/{elementId}/nameGet element tag name
ElementsApiGetElementTextGet /session/{sessionId}/element/{elementId}/textGet element text
ElementsApiIsElementDisplayedGet /session/{sessionId}/element/{elementId}/displayedIs element displayed
ElementsApiIsElementEnabledGet /session/{sessionId}/element/{elementId}/enabledIs element enabled
ElementsApiIsElementSelectedGet /session/{sessionId}/element/{elementId}/selectedIs element selected
MozillaApiGetContextGet /session/{sessionId}/moz/contextGet current context
MozillaApiInstallAddonPost /session/{sessionId}/moz/addon/installInstall addon
MozillaApiSetContextPost /session/{sessionId}/moz/contextSet current context
MozillaApiTakeFullScreenshotGet /session/{sessionId}/moz/screenshot/fullTakes full page screenshot
MozillaApiUninstallAddonPost /session/{sessionId}/moz/addon/uninstallUninstall addon
NavigationApiGetCurrentUrlGet /session/{sessionId}/urlReturns current URL
NavigationApiGetPageTitleGet /session/{sessionId}/titleReturns current page title
NavigationApiNavigateBackPost /session/{sessionId}/backNavigates to the previous page
NavigationApiNavigateForwardPost /session/{sessionId}/forwardNavigates to the next page
NavigationApiNavigateToPost /session/{sessionId}/urlNavigates to URL
NavigationApiRefreshPagePost /session/{sessionId}/refreshReloads current page
PrintApiPrintPagePost /session/{sessionId}/printPrint page to PDF
PromptsApiAcceptAlertPost /session/{sessionId}/alert/acceptAccept alert
PromptsApiDismissAlertPost /session/{sessionId}/alert/dismissDismiss alert
PromptsApiGetAlertTextGet /session/{sessionId}/alert/textGet alert text
PromptsApiSendAlertTextPost /session/{sessionId}/alert/textSend alert text
ScreenshotsApiTakeElementScreenshotGet /session/{sessionId}/element/{elementId}/screenshotTakes element screenshot
ScreenshotsApiTakeScreenshotGet /session/{sessionId}/screenshotTakes page screenshot
SessionsApiCreateSessionPost /sessionCreates new Selenium session
SessionsApiDeleteSessionDelete /session/{sessionId}Deletes existing Selenium session
SessionsApiGetStatusGet /statusGets Selenium API status information
TimeoutsApiGetTimeoutsGet /session/{sessionId}/timeoutsGet session timeouts
TimeoutsApiSetTimeoutsPost /session/{sessionId}/timeoutsAdjusts session timeouts

Documentation For Models

Documentation For Authorization

BasicAuth

  • Type: HTTP basic authentication

Example

auth := context.WithValue(context.Background(), sw.ContextBasicAuth, sw.BasicAuth{
    UserName: "username",
    Password: "password",
})
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author

[email protected]