2 @9      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345678 None 8An opaque type representing a Google Chrome extension. &Load a .crx file as a ChromeExtension (Load raw .crx data as a ChromeExtension     None:A typeclass to convert types to Firefox preference values 9Represents a Firefox profile that has been prepared for D network transmission. The profile cannot be modified in this form. FA Firefox preference. This is the subset of JSON values that excludes  arrays and objects. HA pure representation of a FirefoxProfile. This structure allows you to M construct and manipulate Firefox profiles in pure code, deferring execution ' of IO operations until the profile is "prepared" using either  "! or one of the wrapper functions # and  $. +Location of the profile in the file system 3A set of filepaths pointing to Firefox extensions. . These paths can either refer to an .xpi file  or an extension directory 5A map of Firefox preferences. These are the settings  found in the profile'!s prefs.js, and entries found in  about:config 2Retrieve a preference from a profile by key name. HAdd a new preference entry to a profile, overwriting any existing entry  with the same key. FDelete an existing preference entry from a profile. This operation is  silent if the preference wasn' t found. BAdd a new extension to the profile. The file path should refer to I an .xpi file or an extension directory. This operation has no effect if < the same extension has already been added to this profile. JDelete an existing extension from the profile. The file path should refer L to an .xpi file or an extension directory. This operation has no effect if / the extension was never added to the profile. !LLoad an existing profile from the file system. Any prepared changes made to @ the FirefoxProfile will have no effect to the profile on disk. "3Prepare a FirefoxProfile for network transmission. FInternally, this function constructs a Firefox profile within a temp K directory, archives it as a zip file, and then base64 encodes the zipped 5 data. The temporary directory is deleted afterwards #DApply a function on an automatically generated default profile, and J prepare the result. The FirefoxProfile passed to the handler function is D the same one used by sessions when no Firefox profile is specified $JConvenience function to load an existing Firefox profile from disk, apply K a handler function, and then prepare the result for network transmission. * !"#$9:;<=>?@ABCDEFGHIJKL !"#$ !"#$! !"#$9:;<=>?@ABCDEFGHIJKLNone3%A mouse button )A screen orientation ,An existential wrapper for any M" instance. This allows us to pass 8 parameters of many different types to Javascript code. .HSpecifies element(s) within a DOM tree using various selection methods. 4"(Note: multiple classes are not ' allowed. For more control, use ByCSS) 7"Cookies are delicious delicacies. ?GAn individual stack frame from the stack trace provided by the server  during a FailedCommand. EFDetailed information about the failed command provided by the server. L3The type of failed command exception that occured. fHThis exception encapsulates many different kinds of exceptions that can  occur when a command fails. h A server-side exception occured j7A command was sent to the WebDriver server that it didn' t recognize. lHTTP connection errors. n2An unexpected HTTP status was sent by the server. p,An error occured when parsing a JSON value. rGA command requiring a session ID was attempted when no session ID was  available. tAn invalid URL was given v!Available settings for the proxy  field w7Manually specify proxy hosts as hostname:port strings. 4 Note that behavior is undefined for empty strings. {.Use a proxy auto-config file specified by URL MRepresents platform options supported by WebDriver. The value Any represents  no preference. 3Browser setting and browser-specific capabilities. *Opera-specific configuration coming soon! 2Path to Chrome binary. If Nothing, use a sensible  system-based default. /A list of command-line options to pass to the  Chrome binary. A list of extensions to use. *The firefox profile to use. If Nothing, a 6 a default temporary profile is automatically created  and used. Firefox logging preference 3Path to Firefox binary. If Nothing, use a sensible  system-based default. BA structure describing the capabilities of a session. This record serves dual roles.  It'@s used to specify the desired capabilities for a session before it'Bs created. In this usage, fields that are set to Nothing indicate 0that we have no preference for that capability.  When returned by  , it' s used to >describe the actual capabilities given to us by the WebDriver ?server. Here a value of Nothing indicates that the server doesn't Fsupport the capability. Thus, for Maybe Bool fields, both Nothing and BJust False indicate a lack of support for the desired capability. %Browser choice and browser specific  settings. Browser version to use. $Platform on which the browser should/will  run. Proxy configuration. @Information about a WebDriver session. This structure is passed implicitly through all 1 computations, and is also used to configure the  monad before execution. ,Host name of the WebDriver server for this  session Port number of the server -An opaque reference identifying the session. . A value of Nothing indicates that a session  hasn',t been created yet. To create new sessions,  use the    and   functions. .An opaque identifier for a web page element. +An opaque identifier for a browser window MAn opaque identifier for a WebDriver session. These handles are produced by Lthe server on session creation, and act to identify a session in progress. MA monadic interface to the WebDriver server. This monad is a simple, strict  wrapper over N<, threading session information between sequential commands  A special 5 that always refers to the currently focused window. >A default session connects to localhost on port 4444, and hasn't been +created yet. This value is the same as the O with a more specific type. .Default capabilities. This is the same as the P instance, but with L a more specific type. By default we use Firefox of an unspecified version ; with default settings on whatever platform is available. A All Maybe Bool capabilities are set to Nothing (no preference). Same as /, but with all Maybe Bool capabilities set to  Just True. 9Default Firefox settings. All fields are set to Nothing. MDefault Chrome settings. All Maybe fields are set to Nothing, no options are ( specified, and no extensions are used. Default IE settings.  is set to True. ;Constructs a FailedCommandInfo from only an error message.  Convenience function to throw a f locally with no server-side  info present. %&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~QRSTUVWXYZ[\]^_`abcdefghijklmnopqr%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ġv~}{w|xyz789:;<=>)+*%('&.6543210/,-turspqnolmjkhifgLedcba`_^]\[ZYXWVUTSRQPONMEFGHIJK?@ABCDH%('&)+*,-.6543210/789:;<=>?@ABCDEFGHIJKLedcba`_^]\[ZYXWVUTSRQPONMfghijklmnopqrstuv ~}{w|xyzQRSTUVWXYZ[\]^_`abcdefghijklmnopqr Safe-Infered Construct a singleton JSON s from a key and value. Construct a 2-element JSON s$ from a pair of keys and a pair of  values. Construct a 3-element JSON s' from a triple of keys and a triple of  values.  Parse a lazy t as a top-level JSON u, then convert it to an  instance of v.. Convert a JSON u to an instance of v. %This operator is a wrapper over Aeson's w operator.  Parse a JSON x7 as a pair. The first two string arguments specify the G keys to extract from the object. The fourth string is the name of the / calling function, for better error reporting. BParse a JSON Object as a triple. The first three string arguments M specify the keys to extract from the object. The fourth string is the name 6 of the calling function, for better error reporting. 'Convert an attoparsec parser result to . "Convert an Aeson parser result to .  Safe-Infered >An exception representing a failure of an expected condition. Raises ExpectFailed. IAn expected condition. This function allows you to express assertions in * your explicit wait. This function raises  if the given / boolean is False, and otherwise does nothing. Lifted boolean and Lifted boolean or GWait until either the given action succeeds or the timeout is reached. G The action will be retried every .25 seconds until no ExpectFailed or L NoSuchElement exceptions occur. The timeout value is expressed in seconds. GSimilar to waitUntil but allows you to also specify the poll frequency M of the WD action. The frequency is expressed as an integer in microseconds. KLike waitWhile, but retries the action until it fails or until the timeout  is exceeded. Like waitWhile'3, but retries the action until it either fails or  until the timeout is exceeded. y y  Safe-Inferedz{|}~z{|}~z{|}~  Safe-Infered Safe-Infered    Safe-InferedM*Get information from the server as a JSON x. For more information  about this object see   ?http://code.google.com/p/selenium/wiki/JsonWireProtocol#/status $Create a new session with the given . This command ; resets the current session ID to that of the new session. -Retrieve a list of active sessions and their . Get the actual  of the current session. >Close the current session and the browser associated with it. >Sets the amount of time we implicitly wait when searching for Elements. HSets the amount of time we wait for an asynchronous script to return a  result "Gets the URL of the current page. #Opens a new page by the given URL. )Navigate forward in the browser history. *Navigate backward in the browser history. Refresh the current page BInject a snippet of Javascript into the page for execution in the @context of the currently selected frame. The executed script is Eassumed to be synchronous and the result of evaluating the script is 3returned and converted to an instance of FromJSON. @The first parameter defines arguments to pass to the javascript =function. Arguments of type Element will be converted to the Gcorresponding DOM element. Likewise, any elements in the script result ,will be returned to the client as Elements. @The second parameter defines the script itself in the form of a Gfunction body. The value returned by that function will be returned to Dthe client. The function will be invoked with the provided argument Dlist and the values may be accessed via the arguments object in the order specified. JExecutes a snippet of Javascript code asynchronously. This function works  similarly to 2, except that the Javascript is passed a callback Efunction as its final argument. The script should call this function Mto signal that it has finished executing, passing to it a value that will be Kreturned as the result of asyncJS. A result of Nothing indicates that the #Javascript function timed out (see ) 5Grab a screenshot of the current page as a PNG image 1Returns a handle to the currently focused window 7Returns a list of all windows available to the session "Switches focus to a given window. Closes the given window (Get the dimensions of the given window. (Set the dimensions of the given window. )Get the coordinates of the given window. )Set the coordinates of the given window. 2Retrieve all cookies visible to the current page. FSet a cookie. If the cookie path is not specified, it will default to "/". H Likewise, if the domain is omitted, it will default to the current page's  domain 7Delete a cookie. This will do nothing is the cookie isn't visible to the  current page. 0Delete all visible cookies on the current page. Get the current page source #Get the title of the current page. >Find an element on the page using the given element selector. ;Find all elements on the page matching the given selector. -Return the element that currently has focus. 7Search for an element using the given element as root. HFind all elements matching a selector, using the given element as root.  IDescribe the element. Returns a JSON object whose meaning is currently & undefined by the WebDriver protocol.  Click on an element.  LSubmit a form element. This may be applied to descendents of a form element  as well.  *Get all visible text within this element.  LSend a sequence of keystrokes to an element. All modifier keys are released L at the end of the function. For more information about modifier keys, see   ]http://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value Similar to sendKeys, but doesn'#t implicitly release modifier keys E afterwards. This allows you to combine modifiers with mouse clicks. *Return the tag name of the given element. &Clear a textarea or text input element' s value. &Determine if the element is selected. %Determine if the element is enabled. 'Determine if the element is displayed.  Retrieve the value of an element' s attribute  Retrieve the value of an element's computed CSS property Retrieve an element's current position. Retrieve an element's current size. ADetermines if two element identifiers refer to the same element. CDetermines if two element identifiers refer to different elements. BGet the current screen orientation for rotatable display devices. BSet the current screen orientation for rotatable display devices. !Get the text of an alert dialog. 0Sends keystrokes to Javascript prompt() dialog. .Accepts the currently displayed alert dialog. 0Dismisses the currently displayed alert dialog.  FMoves the mouse to the given position relative to the active element. !2Moves the mouse to the center of a given element. "EMoves the mouse to the given position relative to the given element. #AClick at the current mouse position with the given mouse button. $IPerform the given action with the left mouse button held down. The mouse ' is automatically released afterwards. %IPress and hold the left mouse button down. Note that undefined behavior 2 occurs if the next mouse command is not mouseUp. &Release the left mouse button. ',Double click at the current mouse location. (3Single tap on the touch screen at the given element' s location. )EEmulates pressing a finger down on the screen at the given location. *BEmulates removing a finger from the screen at the given location. +>Emulates moving a finger on the screen to the given location. ,?Emulate finger-based touch scroll. Use this function if you don' t care where  the scroll begins -MEmulate finger-based touch scroll, starting from the given location relative  to the given element. .*Emulate a double click on a touch device. /(Emulate a long click on a touch device. 0GEmulate a flick on the touch screen. The coordinates indicate x and y 5 velocity, respectively. Use this function if you don't care where the  flick starts. 1%Emulate a flick on the touch screen. 25Get the current geographical location of the device. 35Set the current geographical location of the device. R      !"#$%&'()*+,-./01flick velocity )a location relative to the given element the given element 23q%&'()*+,-./0123456789:;<=>      !"#$%&'()*+,-./0123q.6543210/     ,-789:;<=> !"#%('&%&$'()*+,-./01)+*23R      !"#$%&'()*+,-./0123 Safe-Infered4 Executes a  computation within the N monad, using the given  . 5Like 4?, but automatically creates a session beforehand and closes it - afterwards. This is a very common use case. 6Locally sets a  for use within the given  action. ? The state of the outer action is unaffected by this function. M This function is useful if you need to work with multiple sessions at once. 7FA finalizer ensuring that the session is always closed at the end of  the given ' action, regardless of any exceptions. 8 A variant of 7' that only closes the session when an I asynchronous exception is thrown, but otherwise leaves the session open  if the action was successful. 45678%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234567845678v~}{w|xyzturspqnolmjkhifgLedcba`_^]\[ZYXWVUTSRQPONMEFGHIJK?@ABCD45678 !"#$%&''()*+,-./0123456789:;;<=>?@ABCDEEFGHIJKLLMNOPQQRSTUVWXYZ[\]^_`abcdefghijklmnopqqrrssttuuvvwwxxyz{|}~        !"#$%&'()*+,-./ 0123456789:;<=>?@ABCDEFGHIJKLMNOMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrGstuvwGsxGHyGHzGs{| } } ~        webdriver-0.0.1 Test.WebDriver.Commands.InternalTest.WebDriver.Chrome.ExtensionTest.WebDriver.Firefox.ProfileTest.WebDriver.CommandsTest.WebDriverTest.WebDriver.JSONTest.WebDriver.Commands.WaitTest.WebDriver.TypesgetCaps createSession runSessionTest.WebDriver.Types.InternalTest.WebDriver.Internal HTTP-4000.2.2Network.HTTP.BaseHEADPUTGETPOSTDELETEOPTIONSTRACECONNECTCustom RequestMethodNetwork.HTTP.HeadersHeaderChromeExtension loadExtensionloadRawExtension ToFirefox toFirefoxPreparedFirefoxProfile FirefoxPrefPrefBool PrefString PrefDouble PrefIntegerFirefoxProfile profileDir profileExts profilePrefsgetPrefaddPref deletePref addExtensiondeleteExtension loadProfileprepareProfileprepareTempProfileprepareLoadedProfile MouseButton RightButton MiddleButton LeftButton OrientationPortrait LandscapeJSArgSelectorByXPathByCSSByPartialLinkText ByLinkTextByTagByClassByNameByIdCookiecookName cookValuecookPath cookDomain cookSecure cookExpiry StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsg errSessId errScreenerrClasserrStackFailedCommandTypeMethodNotAllowedInvalidXPathSelectorReturnTypeInvalidXPathSelectorMoveTargetOutOfBoundsInvalidSelectorIMEEngineActivationFailedIMENotAvailableInvalidElementCoordinates ScriptTimeout NoAlertOpenUnexpectedAlertOpenUnableToSetCookieInvalidCookieDomain NoSuchWindowTimeoutXPathLookupErrorJavascriptErrorElementIsNotSelectable UnknownErrorInvalidElementStateElementNotVisibleStaleElementReference UnknownFrame NoSuchFrame NoSuchElement FailedCommand ServerErrorUnknownCommand HTTPConnErrorHTTPStatusUnknownBadJSON NoSessionId InvalidURL ProxyTypeManualftpProxysslProxy httpProxyPAC autoConfigUrl AutoDetectUseSystemSettingsNoProxyPlatformAnyUnixLinuxMacVistaXPWindowsBrowserAndroidIPadIPhoneHTMLUnitOperaIEignoreProtectedModeSettingsChromechromeDriverVersion chromeBinary chromeOptionschromeExtensionsFirefox ffProfile ffLogPrefffBinary CapabilitiesbrowserversionplatformproxyjavascriptEnabledtakesScreenshot handlesAlertsdatabaseEnabledlocationContextEnabledapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnabledwebStorageEnabled rotatableacceptSSLCerts nativeEvents WDSessionwdHostwdPortwdSessIdElement WindowHandle SessionIdWD currentWindowdefaultSession defaultCapsallCapsfirefoxchromeieoperaiPhoneiPadandroidmkFailedCommandInfo failedCommandsinglepairtriple parseJSON' fromJSON'!: parsePair parseTriple apResultToWDaesonResultToWD ExpectFailed unexpectedexpect<&&><||> expectAny expectAll waitUntil waitUntil' waitWhile waitWhile' doCommand doSessCommand doElemCommand doWinCommand doCommand'doSessCommand' doWinCommand'doElemCommand' serverStatussessions closeSessionsetImplicitWaitsetScriptTimeout getCurrentURLopenPageforwardbackrefresh executeJSasyncJS screenshotavailableIMEEnginesactiveIMEEnginecheckIMEActive activateIME deactivateIMEgetCurrentWindowwindows focusWindow closeWindow getWindowSize setWindowSize getWindowPos setWindowPoscookies setCookie deleteCookiedeleteVisibleCookies getSourcegetTitlefindElem findElems activeElem findElemFrom findElemsFromelemInfoclicksubmitgetTextsendKeys sendRawKeystagName clearInput isSelected isEnabled isDisplayedattrcssPropelemPoselemSize<==>getOrientationsetOrientation getAlertText replyToAlert acceptAlert dismissAlertmoveTo moveToCenter moveToFrom clickWith withMouseDown mouseDownmouseUp doubleClick touchClick touchDowntouchUp touchMove touchScrolltouchScrollFromtouchDoubleClicktouchLongClick touchFlicktouchFlickFrom getLocation setLocationrunWD withSession finallyClosecloseOnException$fToFirefoxFixed$fToFirefoxRatio$fToFirefoxFloat$fToFirefoxDouble$fToFirefoxWord64$fToFirefoxWord32$fToFirefoxWord16$fToFirefoxWord8$fToFirefoxWord$fToFirefoxInt64$fToFirefoxInt32$fToFirefoxInt16$fToFirefoxInt8$fToFirefoxInt$fToFirefoxInteger$fToFirefoxBool $fToFirefox[]$fToFirefoxText$fExceptionProfileParseError$fToJSONFirefoxPref aeson-0.6.0.2Data.Aeson.Types.ClassToJSONghc-prim GHC.TypesIOdata-default-0.4.0 Data.DefaultdefDefault$fFromJSONStackFrame$fFromJSONFailedCommandInfo$fFromJSONCapabilities$fToJSONCapabilities$fToJSONElement$fFromJSONElement$fShowFailedCommandInfo$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionBadJSON$fExceptionNoSessionId$fExceptionInvalidURL$fDefaultCapabilities$fDefaultWDSession$fMonadBaseControlIOWD$fMonadBaseIOWD$fToJSONCookie $fToJSONJSArg$fToJSONSelector$fToJSONProxyType$fFromJSONProxyType$fFromJSONMouseButton$fToJSONMouseButton$fFromJSONOrientation$fToJSONOrientation$fFromJSONPlatform$fToJSONPlatform$fFromJSONBrowser$fToJSONBrowser$fFromJSONCookie$fToJSONFFLogPrefData.Aeson.Types.Internalobjectbytestring-0.9.2.1Data.ByteString.Lazy.Internal ByteStringValueFromJSON.:Object$fExceptionExpectFailed WDResponse rspSessId rspStatusrspVal$fFromJSONWDResponsemkWDUri mkRequest handleHTTPErrhandleHTTPResp handleJSONErr