|
@@ -1,310 +1,317 @@
|
|
|
package Selenium::Remote::Commands;
|
|
package Selenium::Remote::Commands;
|
|
|
|
|
+use Moo;
|
|
|
|
|
|
|
|
-use strict;
|
|
|
|
|
-use warnings;
|
|
|
|
|
-
|
|
|
|
|
-sub new {
|
|
|
|
|
- my $class = shift;
|
|
|
|
|
-
|
|
|
|
|
- # http://code.google.com/p/selenium/wiki/JsonWireProtocol
|
|
|
|
|
- my $self = {
|
|
|
|
|
- 'status' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => 'status'
|
|
|
|
|
- },
|
|
|
|
|
- 'newSession' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session'
|
|
|
|
|
- },
|
|
|
|
|
- 'getSessions' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => 'sessions'
|
|
|
|
|
- },
|
|
|
|
|
- 'getCapabilities' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => 'session/:sessionId'
|
|
|
|
|
- },
|
|
|
|
|
- 'setTimeout' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/timeouts'
|
|
|
|
|
- },
|
|
|
|
|
- 'setAsyncScriptTimeout' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/timeouts/async_script'
|
|
|
|
|
- },
|
|
|
|
|
- 'setImplicitWaitTimeout' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/timeouts/implicit_wait'
|
|
|
|
|
- },
|
|
|
|
|
- 'quit' => {
|
|
|
|
|
- 'method' => 'DELETE',
|
|
|
|
|
- 'url' => "session/:sessionId"
|
|
|
|
|
- },
|
|
|
|
|
- 'getCurrentWindowHandle' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/window_handle"
|
|
|
|
|
- },
|
|
|
|
|
- 'getWindowHandles' => {
|
|
|
|
|
|
|
+has '_cmds' => (
|
|
|
|
|
+ is => 'lazy',
|
|
|
|
|
+ reader => 'get_cmds',
|
|
|
|
|
+ builder => sub {
|
|
|
|
|
+ return {
|
|
|
|
|
+ 'status' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => 'status'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'newSession' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getSessions' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => 'sessions'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getCapabilities' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => 'session/:sessionId'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setTimeout' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/timeouts'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setAsyncScriptTimeout' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/timeouts/async_script'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setImplicitWaitTimeout' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/timeouts/implicit_wait'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'quit' => {
|
|
|
|
|
+ 'method' => 'DELETE',
|
|
|
|
|
+ 'url' => "session/:sessionId"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getCurrentWindowHandle' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/window_handles"
|
|
|
|
|
- },
|
|
|
|
|
- 'getWindowSize' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/window_handle"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getWindowHandles' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/window_handles"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getWindowSize' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/window/:windowHandle/size"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getWindowPosition' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/window/:windowHandle/position"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setWindowSize' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/window/:windowHandle/size"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setWindowPosition' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/window/:windowHandle/position"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getCurrentUrl' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/url"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'get' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/url"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'goForward' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/forward"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'goBack' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/back"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'refresh' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/refresh"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'executeScript' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/execute"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'executeAsyncScript' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/execute_async"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'screenshot' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/window/:windowHandle/size"
|
|
|
|
|
- },
|
|
|
|
|
- 'getWindowPosition' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/screenshot"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'availableEngines' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/window/:windowHandle/position"
|
|
|
|
|
- },
|
|
|
|
|
- 'setWindowSize' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/window/:windowHandle/size"
|
|
|
|
|
- },
|
|
|
|
|
- 'setWindowPosition' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/window/:windowHandle/position"
|
|
|
|
|
- },
|
|
|
|
|
- 'getCurrentUrl' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/url"
|
|
|
|
|
- },
|
|
|
|
|
- 'get' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/url"
|
|
|
|
|
- },
|
|
|
|
|
- 'goForward' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/forward"
|
|
|
|
|
- },
|
|
|
|
|
- 'goBack' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/back"
|
|
|
|
|
- },
|
|
|
|
|
- 'refresh' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/refresh"
|
|
|
|
|
- },
|
|
|
|
|
- 'executeScript' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/execute"
|
|
|
|
|
- },
|
|
|
|
|
- 'executeAsyncScript' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/execute_async"
|
|
|
|
|
- },
|
|
|
|
|
- 'screenshot' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/screenshot"
|
|
|
|
|
- },
|
|
|
|
|
- 'availableEngines' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/ime/available_engines"
|
|
|
|
|
- },
|
|
|
|
|
- 'switchToFrame' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/frame"
|
|
|
|
|
- },
|
|
|
|
|
- 'switchToWindow' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/window"
|
|
|
|
|
- },
|
|
|
|
|
- 'getAllCookies' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/cookie"
|
|
|
|
|
- },
|
|
|
|
|
- 'addCookie' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/cookie"
|
|
|
|
|
- },
|
|
|
|
|
- 'deleteAllCookies' => {
|
|
|
|
|
- 'method' => 'DELETE',
|
|
|
|
|
- 'url' => "session/:sessionId/cookie"
|
|
|
|
|
- },
|
|
|
|
|
- 'deleteCookieNamed' => {
|
|
|
|
|
- 'method' => 'DELETE',
|
|
|
|
|
- 'url' => "session/:sessionId/cookie/:name"
|
|
|
|
|
- },
|
|
|
|
|
- 'getPageSource' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/source"
|
|
|
|
|
- },
|
|
|
|
|
- 'getTitle' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/title"
|
|
|
|
|
- },
|
|
|
|
|
- 'findElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element"
|
|
|
|
|
- },
|
|
|
|
|
- 'findElements' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/elements"
|
|
|
|
|
- },
|
|
|
|
|
- 'getActiveElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/active"
|
|
|
|
|
- },
|
|
|
|
|
- 'describeElement' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/ime/available_engines"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'switchToFrame' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/frame"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'switchToWindow' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/window"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getAllCookies' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/element/:id"
|
|
|
|
|
- },
|
|
|
|
|
- 'findChildElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/element"
|
|
|
|
|
- },
|
|
|
|
|
- 'findChildElements' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/elements"
|
|
|
|
|
- },
|
|
|
|
|
- 'clickElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/click"
|
|
|
|
|
- },
|
|
|
|
|
- 'submitElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/submit"
|
|
|
|
|
- },
|
|
|
|
|
- 'sendKeysToElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/value"
|
|
|
|
|
- },
|
|
|
|
|
- 'sendKeysToActiveElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/keys"
|
|
|
|
|
- },
|
|
|
|
|
- 'sendModifier' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/modifier"
|
|
|
|
|
- },
|
|
|
|
|
- 'isElementSelected' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/selected"
|
|
|
|
|
- },
|
|
|
|
|
- 'setElementSelected' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/selected"
|
|
|
|
|
- },
|
|
|
|
|
- 'toggleElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/toggle"
|
|
|
|
|
- },
|
|
|
|
|
- 'isElementEnabled' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/enabled"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementLocation' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/location"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementLocationInView' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/location_in_view"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementTagName' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/cookie"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'addCookie' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/cookie"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'deleteAllCookies' => {
|
|
|
|
|
+ 'method' => 'DELETE',
|
|
|
|
|
+ 'url' => "session/:sessionId/cookie"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'deleteCookieNamed' => {
|
|
|
|
|
+ 'method' => 'DELETE',
|
|
|
|
|
+ 'url' => "session/:sessionId/cookie/:name"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getPageSource' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/element/:id/name"
|
|
|
|
|
- },
|
|
|
|
|
- 'clearElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/clear"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementAttribute' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' =>
|
|
|
|
|
-"session/:sessionId/element/:id/attribute/:name"
|
|
|
|
|
- },
|
|
|
|
|
- 'elementEquals' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/equals/:other"
|
|
|
|
|
- },
|
|
|
|
|
- 'isElementDisplayed' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/displayed"
|
|
|
|
|
- },
|
|
|
|
|
- 'close' => {
|
|
|
|
|
- 'method' => 'DELETE',
|
|
|
|
|
- 'url' => "session/:sessionId/window"
|
|
|
|
|
- },
|
|
|
|
|
- 'dragElement' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/drag"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementSize' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/source"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getTitle' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/element/:id/size"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementText' => {
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/title"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'findElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'findElements' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/elements"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getActiveElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/active"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'describeElement' => {
|
|
|
'method' => 'GET',
|
|
'method' => 'GET',
|
|
|
- 'url' => "session/:sessionId/element/:id/text"
|
|
|
|
|
- },
|
|
|
|
|
- 'getElementValueOfCssProperty' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => "session/:sessionId/element/:id/css/:propertyName"
|
|
|
|
|
- },
|
|
|
|
|
- 'mouseMoveToLocation' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => "session/:sessionId/moveto"
|
|
|
|
|
- },
|
|
|
|
|
- 'getAlertText' => {
|
|
|
|
|
- 'method' => 'GET',
|
|
|
|
|
- 'url' => 'session/:sessionId/alert_text'
|
|
|
|
|
- },
|
|
|
|
|
- 'sendKeysToPrompt' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/alert_text'
|
|
|
|
|
- },
|
|
|
|
|
- 'acceptAlert' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/accept_alert'
|
|
|
|
|
- },
|
|
|
|
|
- 'dismissAlert' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/dismiss_alert'
|
|
|
|
|
- },
|
|
|
|
|
- 'click' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/click'
|
|
|
|
|
- },
|
|
|
|
|
- 'doubleClick' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/doubleclick'
|
|
|
|
|
- },
|
|
|
|
|
- 'buttonDown' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/buttondown'
|
|
|
|
|
- },
|
|
|
|
|
- 'buttonUp' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/buttonup'
|
|
|
|
|
- },
|
|
|
|
|
- 'uploadFile' => {
|
|
|
|
|
- 'method' => 'POST',
|
|
|
|
|
- 'url' => 'session/:sessionId/file'
|
|
|
|
|
- },
|
|
|
|
|
- #'setVisible' => {
|
|
|
|
|
- # 'method' => 'POST',
|
|
|
|
|
- # 'url' => "session/:sessionId/visible"
|
|
|
|
|
- #},
|
|
|
|
|
- #'getVisible' => {
|
|
|
|
|
- # 'method' => 'GET',
|
|
|
|
|
- # 'url' => "session/:sessionId/visible"
|
|
|
|
|
- #},
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'findChildElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/element"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'findChildElements' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/elements"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'clickElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/click"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'submitElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/submit"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'sendKeysToElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/value"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'sendKeysToActiveElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/keys"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'sendModifier' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/modifier"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'isElementSelected' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/selected"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'setElementSelected' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/selected"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'toggleElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/toggle"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'isElementEnabled' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/enabled"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementLocation' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/location"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementLocationInView' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/location_in_view"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementTagName' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/name"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'clearElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/clear"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementAttribute' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/attribute/:name"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'elementEquals' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/equals/:other"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'isElementDisplayed' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/displayed"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'close' => {
|
|
|
|
|
+ 'method' => 'DELETE',
|
|
|
|
|
+ 'url' => "session/:sessionId/window"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'dragElement' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/drag"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementSize' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/size"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementText' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/text"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getElementValueOfCssProperty' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => "session/:sessionId/element/:id/css/:propertyName"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'mouseMoveToLocation' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => "session/:sessionId/moveto"
|
|
|
|
|
+ },
|
|
|
|
|
+ 'getAlertText' => {
|
|
|
|
|
+ 'method' => 'GET',
|
|
|
|
|
+ 'url' => 'session/:sessionId/alert_text'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'sendKeysToPrompt' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/alert_text'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'acceptAlert' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/accept_alert'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'dismissAlert' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/dismiss_alert'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'click' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/click'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'doubleClick' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/doubleclick'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'buttonDown' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/buttondown'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'buttonUp' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/buttonup'
|
|
|
|
|
+ },
|
|
|
|
|
+ 'uploadFile' => {
|
|
|
|
|
+ 'method' => 'POST',
|
|
|
|
|
+ 'url' => 'session/:sessionId/file'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ #'setVisible' => {
|
|
|
|
|
+ # 'method' => 'POST',
|
|
|
|
|
+ # 'url' => "session/:sessionId/visible"
|
|
|
|
|
+ #},
|
|
|
|
|
+ #'getVisible' => {
|
|
|
|
|
+ # 'method' => 'GET',
|
|
|
|
|
+ # 'url' => "session/:sessionId/visible"
|
|
|
|
|
+ #},
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+);
|
|
|
|
|
|
|
|
- bless $self, $class or die "Can't bless $class: $!";
|
|
|
|
|
- return $self;
|
|
|
|
|
|
|
+# helper methods to manipulate the _cmds hash
|
|
|
|
|
+sub get_url {
|
|
|
|
|
+ my ( $self, $command ) = @_;
|
|
|
|
|
+ return $self->get_cmds->{$command}->{url};
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+sub get_method {
|
|
|
|
|
+ my ( $self, $command ) = @_;
|
|
|
|
|
+ return $self->get_cmds->{$command}->{method};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# This method will replace the template & return
|
|
# This method will replace the template & return
|
|
|
sub get_params {
|
|
sub get_params {
|
|
|
- my ($self, $args) = @_;
|
|
|
|
|
- if (!(defined $args->{'session_id'})) {
|
|
|
|
|
|
|
+ my ( $self, $args ) = @_;
|
|
|
|
|
+ if ( !( defined $args->{'session_id'} ) ) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- my $data = {};
|
|
|
|
|
|
|
+ my $data = {};
|
|
|
my $command = $args->{'command'};
|
|
my $command = $args->{'command'};
|
|
|
- my $url = $self->{$command}->{'url'};
|
|
|
|
|
-
|
|
|
|
|
|
|
+ my $url = $self->get_url($command);
|
|
|
|
|
+
|
|
|
# Do the var substitutions.
|
|
# Do the var substitutions.
|
|
|
$url =~ s/:sessionId/$args->{'session_id'}/;
|
|
$url =~ s/:sessionId/$args->{'session_id'}/;
|
|
|
$url =~ s/:id/$args->{'id'}/;
|
|
$url =~ s/:id/$args->{'id'}/;
|
|
@@ -313,7 +320,7 @@ sub get_params {
|
|
|
$url =~ s/:other/$args->{'other'}/;
|
|
$url =~ s/:other/$args->{'other'}/;
|
|
|
$url =~ s/:windowHandle/$args->{'window_handle'}/;
|
|
$url =~ s/:windowHandle/$args->{'window_handle'}/;
|
|
|
|
|
|
|
|
- $data->{'method'} = $self->{$command}->{'method'};
|
|
|
|
|
|
|
+ $data->{'method'} = $self->get_method($command);
|
|
|
$data->{'url'} = $url;
|
|
$data->{'url'} = $url;
|
|
|
|
|
|
|
|
return $data;
|
|
return $data;
|