_wJ\Q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP 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 LA Firefox preference value. This is the subset of JSON values that excludes  arrays and objects. 9Represents a Firefox profile that has been prepared for D network transmission. The profile cannot be modified in this form. 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  $. 1Location of the profile in the local 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. G Internally, 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 @ the default profile used by sessions when Nothing 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. * !"#$QRSTUVWXYZ[\]^_`abcd !"#$ !"#$! !"#$QRSTUVWXYZ[\]^_`abcdNoneD%An HTML 5 storage type (A mouse button ,A screen orientation /An existential wrapper for any e" instance. This allows us to pass 8 parameters of many different types to Javascript code. 1HSpecifies element(s) within a DOM tree using various selection methods. 7"(Note: multiple classes are not  allowed. For more control, use 3) :NCookies are delicious delicacies. When sending cookies to the server, a value Q of Nothing indicates that the server should use a default value. When receiving Q cookies from the server, a value of Nothing indicates that the server is unable  to specify the value. >path of this cookie.  if Nothing, defaults to / ?domain of this cookie.  if Nothing, the current pages  domain is used @Is this cookie secure? AExpiry date expressed as  seconds since the Unix epoch  Nothing indicates that the  cookie never expires BGAn individual stack frame from the stack trace provided by the server  during a FailedCommand. HFDetailed information about the failed command provided by the server. JThe error message. KThe session associated with  the exception. L$A screen shot of the focused window  when the exception occured,  if provided. MThe class in which the exception  was raised, if provided. N A stack trace of the exception. O3The type of failed command exception that occured. iCThis exception encapsulates a broad variety of exceptions that can  occur when a command fails. k A server-side exception occured m7A command was sent to the WebDriver server that it didn' t recognize. oHTTP connection errors. q2An unexpected HTTP status was sent by the server. s,An error occured when parsing a JSON value. uGA command requiring a session ID was attempted when no session ID was  available. wAn invalid URL was given yFor  sessions; indicates Firefox' s log level z!Available settings for the proxy  field {7Manually 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!) 6Version of the Chrome Webdriver server server to use. * for more information on chromedriver see   3http://code.google.com/p/selenium/wiki/ChromeDriver 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, 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 received from the server , 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 to  use with  commands. . A value of Nothing indicates that a session  hasn't been created yet.  Sessions can be created within  via the    , or created  and closed automatically with    Specifies the frame used by   /focus on the first frame, or the main document  if iframes are used. focus on a frame Element focus on a frame by name or ID .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  layer over f<, 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 g! but with a more specific type. .Default capabilities. This is the same as the h instance, but with ' less polymorphism. By default, we use  of an unspecified  5 with default system-wide proxy settings on whatever  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 i locally with no server-side  info present. ACreates a Cookie with only a name and value specified. All other J fields are set to Nothing, which tells the server to use default values. %&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ijklmnopqrstuvwxyz{|}~%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ϊz{|}~y198765432/0:;<=>?@A,.-(+*)%'&wxuvstqropmnklijOhgfedcba`_^]\[ZYXWVUTSRQPHIJKLMNBCDEFGN%'&(+*),.-/0198765432:;<=>?@ABCDEFGHIJKLMNOhgfedcba`_^]\[ZYXWVUTSRQPijklmnopqrstuvwxyz {|}~ijklmnopqrstuvwxyz{|}~ Safe-Infered Construct a singleton JSON  from a key and value. Construct a 2-element JSON $ from a pair of keys and a pair of  values. Construct a 3-element JSON ' from a triple of keys and a triple of  values.  Parse a lazy  as a top-level JSON , then convert it to an  instance of .. Convert a JSON  to an instance of . %This operator is a wrapper over Aeson's  operator.  Parse a JSON 7 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 the failure of an expected condition. throws 2. This is nice for writing your own abstractions. 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 KApply a predicate to every element in a list, and expect that at least one  succeeds. KApply a predicate to every element in a list, and expect that all succeed. 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 D NoSuchElement exceptions occur. If the timeout is reached, then a   1 exception will be raised. 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. Like =, but retries the action until it fails or until the timeout  is exceeded. Like  'waitUntil\''3, but retries the action until it either fails or  until the timeout is exceeded.    Safe-Infered Safe-Infered Safe-Infered     Safe-InferedX*Get information from the server as a JSON . 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. OSets the amount of time to wait for a page to finish loading before throwing a ^ exception "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 :Switch focus to the frame specified by the FrameSelector. 1Returns a handle to the currently focused window 7Returns a list of all windows available to the session Closes the given window 7Maximizes the current window if not already maximized  *Get the dimensions of the current window.  *Set the dimensions of the current window.  +Get the coordinates of the current window.  +Set the coordinates of the current 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. 02Moves the mouse to the center of a given element. 1EMoves the mouse to the given position relative to the given element. 2AClick at the current mouse position with the given mouse button. 3IPerform the given action with the left mouse button held down. The mouse ' is automatically released afterwards. 4IPress and hold the left mouse button down. Note that undefined behavior 2 occurs if the next mouse command is not mouseUp. 5Release the left mouse button. 6,Double click at the current mouse location. 73Single tap on the touch screen at the given element' s location. 8EEmulates pressing a finger down on the screen at the given location. 9BEmulates 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. ?GEmulate 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. @%Emulate a flick on the touch screen. A5Get the current geographical location of the device. B5Set the current geographical location of the device. C;Uploads a file from the local filesystem by its file path. D4Uploads a raw bytestring with associated file info. E8Lowest level interface to the file uploading mechanism. 1 This allows you to specify the exact details of $ the zip entry sent across network. F6Get the current number of keys in a web storage area. G0Get a list of all keys from a web storage area. H1Delete all keys within a given web storage area. ICGet the value associated with a key in the given web storage area. @ Unset keys result in empty strings, since the Web Storage spec G makes no distinction between the empty string and an undefined value. J)Set a key in the given web storage area. K-Delete a key in the given web storage area. ^      !"#$%&'()*+,-./0123456789:;<=>?@flick velocity )a location relative to the given element the given element ABCD'File path to use with this bytestring. Modification time  (in seconds since Unix epoch). 'The file contents as a lazy ByteString EFGHIJK()*+,-./0123456789:;<=>?@A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK198765432#$%& !"'(/0    :;<=>?@A +,-./012(+*)4536,.-)*ABFGHIJKCDE789:;<=>?@^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK Safe-InferedL Executes a  computation within the f monad, using the given  . MLike L?, but automatically creates a session beforehand and closes it - afterwards. This is a very common use case. NLocally 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. OFA finalizer ensuring that the session is always closed at the end of  the given ' action, regardless of any exceptions. P A variant of O' that only closes the session when an I asynchronous exception is thrown, but otherwise leaves the session open  if the action was successful. LMNOP ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPLMNOPz{|}~wxuvstqropmnklijOhgfedcba`_^]\[ZYXWVUTSRQPHIJKLMNBCDEFGLMNOP !"#$%&'(()*+,-./0123456789:;<=>??@ABCDEFGHIIJKLMNOPPQRSTUUVWXYZ[\]^_`abcdefghi jklmnopqrsttuuvvwwxxyyzz{{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgefhijklmnopqrstuvwxyz{|}~___`_`_       webdriver-0.2 Test.WebDriver.Commands.InternalTest.WebDriver.Chrome.ExtensionTest.WebDriver.Firefox.ProfileTest.WebDriver.TypesTest.WebDriver.CommandsTest.WebDriverTest.WebDriver.JSONTest.WebDriver.Commands.Wait createSession runSession focusFrameTimeoutTest.WebDriver.Types.InternalTest.WebDriver.Internal HTTP-4000.2.3Network.HTTP.BaseHEADPUTGETPOSTDELETEOPTIONSTRACECONNECTCustom RequestMethodNetwork.HTTP.HeadersHeaderChromeExtension loadExtensionloadRawExtension ToFirefox toFirefox FirefoxPrefPrefBool PrefString PrefDouble PrefIntegerPreparedFirefoxProfileFirefoxProfile profileDir profileExts profilePrefsgetPrefaddPref deletePref addExtensiondeleteExtension loadProfileprepareProfileprepareTempProfileprepareLoadedProfileWebStorageTypeSessionStorage LocalStorage MouseButton RightButton MiddleButton LeftButton OrientationPortrait LandscapeJSArgSelectorByXPathByCSSByPartialLinkText ByLinkTextByTagByClassByNameByIdCookiecookName cookValuecookPath cookDomain cookSecure cookExpiry StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsgerrSess errScreenerrClasserrStackFailedCommandTypeMethodNotAllowedInvalidXPathSelectorReturnTypeInvalidXPathSelectorMoveTargetOutOfBoundsInvalidSelectorIMEEngineActivationFailedIMENotAvailableInvalidElementCoordinates ScriptTimeout NoAlertOpenUnexpectedAlertOpenUnableToSetCookieInvalidCookieDomain NoSuchWindowXPathLookupErrorJavascriptErrorElementIsNotSelectable UnknownErrorInvalidElementStateElementNotVisibleStaleElementReference UnknownFrame NoSuchFrame NoSuchElement FailedCommand ServerErrorUnknownCommand HTTPConnErrorHTTPStatusUnknownBadJSON NoSessionId InvalidURL FFLogPref ProxyTypeManualftpProxysslProxy httpProxyPAC autoConfigUrl AutoDetectUseSystemSettingsNoProxyPlatformAnyUnixLinuxMacVistaXPWindowsBrowserAndroidIPadIPhoneHTMLUnitOperaIEignoreProtectedModeSettingsChromechromeDriverVersion chromeBinary chromeOptionschromeExtensionsFirefox ffProfile ffLogPrefffBinary CapabilitiesbrowserversionplatformproxyjavascriptEnabledtakesScreenshot handlesAlertsdatabaseEnabledlocationContextEnabledapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnabledwebStorageEnabled rotatableacceptSSLCerts nativeEvents WDSessionwdHostwdPortwdSessId FrameSelector DefaultFrame WithElementWithName WithIndexElement WindowHandle SessionIdWD currentWindowdefaultSession defaultCapsallCapsfirefoxchromeieoperaiPhoneiPadandroidmkFailedCommandInfo failedCommandmkCookiesinglepairtriple parseJSON' fromJSON'!: parsePair parseTriple apResultToWDaesonResultToWD ExpectFailed unexpectedexpect<&&><||> expectAny expectAll waitUntil waitUntil' waitWhile waitWhile' doCommand doSessCommand doElemCommand doWinCommanddoStorageCommand doCommand'doSessCommand' doWinCommand'doElemCommand'doStorageCommand' serverStatussessionsgetCaps closeSessionsetImplicitWaitsetScriptTimeoutsetPageLoadTimeout getCurrentURLopenPageforwardbackrefresh executeJSasyncJS screenshotavailableIMEEnginesactiveIMEEnginecheckIMEActive activateIME deactivateIMEgetCurrentWindowwindows focusWindow closeWindowmaximize 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 setLocation uploadFile uploadRawFileuploadZipEntry storageSize getAllKeys deleteAllKeysgetKeysetKey deleteKeyrunWD 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$fShowStackFrame$fShowFailedCommandInfo$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionBadJSON$fExceptionNoSessionId$fExceptionInvalidURL$fDefaultCapabilities$fDefaultWDSession$fMonadBaseControlIOWD$fMonadBaseIOWD$fToJSONCookie$fToJSONFrameSelector $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