śĪ+µ®’Č      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČ É Ź Ė Ģ Ķ Ī Ļ Š Ń Ņ Ó Ō Õ Ö × Ų Ł Ś Ū Ü Ż Ž ß ą į āćä å ę ē č é ź ė ģ ķ ī ļ š ń ņ ó ō õ ö ÷ ų ł ś ū ü ż ž ’                                  ! " #$%&'()*+,- . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   ” ¢ £ ¤ „ ¦ § Ø © Ŗ « ¬ ­ ® Æ ° ± ² ³ “ µ ¶ · ø ¹ ŗ » ¼ ½ ¾ æ ĄĮĀĆÄÅĘĒNone3B^An opaque type representing a Google Chrome extension. Values of this type are passed to the  field. Load a .crx file as a . Load raw .crx data as a .Č   Č None+234B 9A typeclass to convert types to profile preference values GAn error occured while attempting to parse a profile's preference file.gA profile preference value. This is the subset of JSON values that excludes arrays, objects, and null.sRepresents a profile that has been prepared for network transmission. The profile cannot be modified in this form.’#This structure allows you to construct and manipulate profiles in pure code, deferring execution of IO operations until the profile is "prepared". This type is shared by both Firefox and Opera profiles; when a distinction must be made, the phantom type parameter is used to differentiate.ŌA mapping from relative destination filepaths to source filepaths found on the filesystem. When the profile is prepared, these source filepaths will be moved to their destinations within the profile directory.tUsing the destination path as the key ensures that there is one unique source path going to each destination path.yA map of profile preferences. These are the settings found in the profile's prefs.js, and entries found in about:config1Retrieve a preference from a profile by key name.[Add a new preference entry to a profile, overwriting any existing entry with the same key.mDelete an existing preference entry from a profile. This operation is silent if the preference wasn't found.’Add a file to the profile directory. The first argument is the source of the file on the local filesystem. The second argument is the destination as a path relative to a profile directory. Overwrites any file that previously pointed to the same destinationoDelete a file from the profile directory. The first argument is the name of file within the profile directory.hDetermines if a profile contains the given file, specified as a path relative to the profile directory. {Add a new extension to the profile. The file path should refer to a .xpi file or an extension directory on the filesystem.!öDelete an existing extension from the profile. The string parameter should refer to an .xpi file or directory located within the extensions directory of the profile. This operation has no effect if the extension was never added to the profile."bDetermines if a profile contains the given extension. specified as an .xpi file or directory name#<Takes the union of two profiles. This is the union of their HashMap fields.$ Modifies the  field of a profile.% Modifies the  field of a profile&XEfficiently load an existing profile from disk and prepare it for network transmission.'‡Prepare a zip file of a profile on disk for network transmission. This function is very efficient at loading large profiles from disk.(<Prepare a zip archive of a profile for network transmission.)=Prepare a ByteString of raw zip data for network transmission6  !"#$%&'()ÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽß  !"#$%&'()  !"#%$&'() ,   !"#$%&'()ÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßNone3<BM*'Phantom type used in the parameters of  and +:Default Firefox Profile, used when no profile is supplied.,QLoad an existing profile from the file system. Any prepared changes made to the , will have no effect to the profile on disk.>To make automated browser run smoothly, preferences found in +œ are automatically merged into the preferences of the on-disk-- profile. The on-disk profile's preference will override those found in the default profile.-łPrepare a firefox profile for network transmission. Internally, this function constructs a Firefox profile within a temp directory, archives it as a zip file, and then base64 encodes the zipped data. The temporary directory is deleted afterwards.ĘNOTE: because this function has to copy the profile files into a a temp directory before zip archiving them, this operation is likely to be slow for large profiles. In such a case, consider using & or ' instead..­Apply a function on a default profile, and prepare the result. The Profile passed to the handler function is the default profile used by sessions when Nothing is specified/”Convenience function to load an existing Firefox profile from disk, apply a handler function, and then prepare the result for network transmission. NOTE: like -/, the same caveat about large profiles applies.*+,-./ąį$  !"#$%&'()*+,-./$*+  !"#%$-.,/&'() *+,-./ąįNone0000None+3 1ŚA type indicating that we expect no return value from the webdriver request. Its FromJSON instance parses successfully for any values that indicate lack of a return value (a notion that varies from server to server).3+An error occured when parsing a JSON value.5Construct a singleton JSON ā from a key and value.6Construct a 2-element JSON ā+ from a pair of keys and a pair of values.7Construct a 3-element JSON ā/ from a triple of keys and a triple of values.8 Parse a lazy ć as a top-level JSON ä%, then convert it to an instance of å..9Convert a JSON ä to an instance of å.:(This operator is a wrapper over Aeson's ę operator.; Parse a JSON ē« as a pair. The first two string arguments specify the keys to extract from the object. The third string is the name of the calling function, for better error reporting.<ĆParse a JSON Object as a triple. The first three string arguments specify the keys to extract from the object. The fourth string is the name of the calling function, for better error reporting.='Convert an attoparsec parser result to WD.>"Convert an Aeson parser result to WD.123456789:;<=>čé123456789:;<=>:89567;<=>3412123456789:;<=>čéNoneD?6Specifies how elements scroll into the viewport. (see €)B$Logging levels for Internet ExplorerI)Indicates a log verbosity level. Used in * and o configuration.W!Available settings for the proxy • fieldXjManually specify proxy hosts as hostname:port strings. Note that behavior is undefined for empty strings.\-Use a proxy auto-config file specified by URLa\Represents platform options supported by WebDriver. The value Any represents no preference.i»This constructor simultaneously specifies which browser the session will use, while also providing browser-specific configuration. Default configuration is provided for each browser by «, ¬, ®, ­, etc.This library uses « as its ź= browser configuration, when no browser choice is specified.j.some other browser, specified by a string namep$Server-side path to the Opera binaryq8Which Opera product we're using, e.g. "desktop", "core"r{Whether the Opera instance should stay open after we close the session. If false, closing the session closes the browser.s…Whether to auto-start the Opera binary. If false, OperaDriver will wait for a connection from the browser. By default this is True.tÉWhether to use Opera's alternative implicit wait implementation. It will use an in-browser heuristic to guess when a page has finished loading. This feature is experimental, and disabled by default.u#(*nix only) which X display to use.v“Path to the launcher binary to use. The launcher is a gateway between OperaDriver and the Opera browser. If Nothing, OperaDriver will use the launcher supplied with the package.wThe port we should use to connect to Opera. If Just 0 , use a random port. If Nothing, use the default Opera port. The default ®] constructor uses Just 0, since Nothing is likely to cause "address already in use" errors.x]The host Opera should connect to. Unless you're starting Opera manually you won't need this.y(Command-line arguments to pass to Opera.z?Where to send the log output. If Nothing, logging is disabled.{"Log level preference. Defaults to O}ķWhether to skip the protected mode check. If set, tests may become flaky, unresponsive, or browsers may hang. If not set, and protected mode settings are not the same for all zones, an exception will be thrown on driver construction.~tIndicates whether to skip the check that the browser's zoom level is set to 100%. Value is set to false by default.’XAllows the user to specify the initial URL loaded when IE starts. Intended to be used with ignoreProtectedModeSettings to allow the user to initialize IE in the proper Protected Mode zone. Using this capability may cause browser instability or flaky and unresponsive code. Only "best effort" support is provided when using this capability.€ŹAllows the user to specify whether elements are scrolled into the viewport for interaction to align with the top or bottom of the viewport. The default value is to align with the top of the viewport.ÉDetermines whether persistent hovering is enabled (true by default). Persistent hovering is achieved by continuously firing mouse over events at the last location the mouse cursor has been moved to.‚ėDetermines whether the driver should attempt to remove obsolete elements from the element cache on page navigation (true by default). This is to help manage the IE driver's memory footprint , removing references to invalid elements.ƒķDetermines whether to require that the IE window have focus before performing any user interaction operations (mouse or keyboard events). This capability is false by default, but delivers much more accurate native events interactions.„¾The timeout, in milliseconds, that the driver will attempt to locate and attach to a newly opened instance of Internet Explorer . The default is zero, which indicates waiting indefinitely.…\The path to file where server should write log messages to. By default it writes to stdout.†.The log level used by the server. Defaults to C‡NThe address of the host adapter on which the server will listen for commands.ˆ€The path to the directory used to extract supporting files used by the server. Defaults to the TEMP directory if not specified.‰8Suppresses diagnostic output when the server is started.Š÷Forces launching Internet Explorer using the CreateProcess API. If this option is not specified, IE is launched using the IELaunchURL, if it is available. For IE 8 and above, this option requires the TabProcGrowth registry value to be set to 0.‹ƒSpecifies command-line switches with which to launch Internet Explorer. This is only valid when used with the forceCreateProcess.4Version of the Chrome Webdriver server server to use*for more information on chromedriver see 3http://code.google.com/p/selenium/wiki/ChromeDriverŽTServer-side path 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.’hThe firefox profile to use. If Nothing, a default temporary profile is automatically created and used.“Firefox logging preference”UServer-side path to Firefox binary. If Nothing, use a sensible system-based default.•TA 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's created. In this usage, fields that are set to Nothing indicate that we have no preference for that capability.’4When 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 support the capability. Thus, for Maybe Bool fields, both Nothing and Just 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 run.šProxy configuration settings.›7Whether the session supports executing JavaScript via  executeJS and asyncJS.œNWhether the session supports taking screenshots of the current page with the  screenshot commandbWhether the session can interact with modal popups, such as window.alert and window.confirm via  acceptAlerts,  dismissAlerts, etc.ž7Whether the session can interact with database storage.ŸKWhether the session can set and query the browser's location context with  setLocation and  getLocation. >Whether the session can interact with the application cache .”WWhether the session can query for the browser's connectivity and disable it if desired¢HWhether the session supports CSS selectors when searching for elements.£Whether Web Storage (getKey, setKey, etc) support is enabled¤JWhether the session can rotate the current page's current layout between Portrait and  Landscape orientations.„:Whether the session should accept all SSL certs by default¦ZWhether the session is capable of generating native OS events when simulating user input.§0How the session should handle unexpected alerts.Ø A list of (ė, ä8) pairs specifying additional non-standard capabilities.©.Default capabilities. This is the same as the ź; instance, but with less polymorphism. By default, we use « of an unspecified ˜ with default system-wide š settings on whatever ™ is available . All ģ capabilities are set to ķ (no preference).ŖSame as ©, but with all ģ ī capabilities set to ļ š.«TDefault Firefox settings. All Maybe fields are set to Nothing. ffLogPref is set to O.¬tDefault Chrome settings. All Maybe fields are set to Nothing, no options are specified, and no extensions are used.­Default IE settings. See the |5 constructor for more details on individual defaults® Default Opera settings. See the o6 constructor for more details on individual defaults.‰?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒt?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²‰•–—˜™š›œžŸ ”¢£¤„¦§ØĒ©ŖĘÅi‘Œ|onmlkj’“”Ž}~€‚ƒ„…†‡ˆ‰Š‹pqrstuvwxyz{ÄĆĀ«¬­®Æ°±²ahgfedcbĮĄW`_^\X]YZ[æ¾SVUT½¼IRQPONMLKJ»ŗ¹BHGFEDCø·¶?A@µ“³'?A@BHGFEDCI RQPONMLKJSVUTW `_^\X]YZ[ahgfedcbi+‘Œ|onmlkj’“”Ž}~€‚ƒ„…†‡ˆ‰Š‹pqrstuvwxyz{•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒ None+3BČžA class for monads that carry a WebDriver session with them. The MonadBaseControl superclass is used for exception handling through the lifted-base package.ĖXThe local state of a WebDriver session. This structure is passed implicitly through all WD computations Š9An opaque reference identifying the session to use with WDr commands. A value of Nothing indicates that a session hasn't been created yet. Sessions can be created within WD via !, or created automatically with ŃHThe complete history of HTTP requests and responses, most recent first.Ņ=Update function used to append new entries to session historyÓHTTP ń8 used for connection pooling by the http-client library.Ō—An opaque identifier for a WebDriver session. These handles are produced by the server on session creation, and act to identify a session in progress. Ö5The last HTTP request issued by this session, if any.ČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ņóōõö÷ųłśČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ČÉŹ×ĖĢĶĪĻŠŃŅÓÖŌÕČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ņóōõö÷ųłś None3 ŲWebDriver session configurationŚGHost name of the WebDriver server for this session (default 127.0.0.1)Ū(Port number of the server (default 4444)Ü$Capabilities to use for this sessionŻBWhether or not we should keep a history of HTTP requests/responsesšBy default, only the last request/response pair is stored (O(1) heap consumption). Enable this option for more detailed debugging info for HTTP requests.Ž)Base path for all API requests (default "wdhub")ßUse the given http-client ń instead of the defaultą€A default session config connects to localhost on port 4444, and hasn't been initialized server-side. This value is the same as ū# but with a less polymorphic type. įConstructs a new Ė from a given Ų ŲŁŚŪÜŻŽßąįü ŲŁŚŪÜŻŽßąį ŲŁŚŪÜŻŽßąįŲŁŚŪÜŻŽßąįüNone+3Bā‰A class for monads that can handle wire protocol requests. This is the operation underlying all of the high-level commands exported in Test.WebDriver.Commands1. For more information on the wire protocol see 7http://code.google.com/p/selenium/wiki/JsonWireProtocol āćHTTP request methodURL of request£JSON parameters passed in the body of the request. Note that, as a special case, anything that converts to Data.Aeson.Null will result in an empty request body.$The JSON result of the HTTP request.żž’āćāć āćżž’None+3Mä^An individual stack frame from the stack trace provided by the server during a FailedCommand.źEDetailed information about the failed command provided by the server.ģThe error message.ķ+The session associated with the exception.īNA screen shot of the focused window when the exception occured, if provided.ļ<The "class" in which the exception was raised, if provided.šA stack trace of the exception.ń2The type of failed command exception that occured. _This exception encapsulates a broad variety of exceptions that can occur when a command fails. A server-side exception occuredDA command was sent to the WebDriver server that it didn't recognize.HTTP connection errors.1An unexpected HTTP status was sent by the server.An invalid URL was given3Internal type representing the JSON response objectConstructs an HTTP J value when given a list of headers, HTTP request method, and URL fragment 4Sends an HTTP request to the remote WebDriver server  Parses a # object from a given HTTP response.:Constructs a FailedCommandInfo from only an error message. Convenience function to throw a  + locally with no server-side info present. KProvides a readable printout of the error information, useful for logging.Jäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’          ?äåęēčéźėģķīļšńņóōõö÷ųłśūüżž’         äåęēčéźėģķīļšń  ’žżüūśłų÷öõōóņ         None+BQA command requiring a session ID was attempted when no session ID was available.*An opaque identifier for a browser window -An opaque identifier for a web page element.  A special O that always refers to the currently focused window. This is also used by the ź instance. !This a convenient wrapper around ćq that automatically prepends the session URL parameter to the wire command URL. For example, passing a URL of "refresh" will expand to "session :sessionId@refresh", where :sessionId is a URL parameter as described in 7http://code.google.com/p/selenium/wiki/JsonWireProtocol!A wrapper around  S to create element URLs. For example, passing a URL of "/active" will expand to "session :sessionIdelement\:id/active", where :sessionId and :id are URL parameters as described in the wire protocol."A wrapper around  W to create window handle URLS. For example, passing a URL of "/size" will expand to "session :sessionIdwindowi:windowHandle/", where :sessionId and :windowHandle are URL parameters as described in the wire protocol !" ŌÕć !" ć ŌÕ!"  !" None934äåęēčéźėģķīļšńņóōõö÷ųłśūüżž’     934   ń  ’žżüūśłų÷öõōóņźėģķīļšäåęēčéNone+3M #?An exception representing the failure of an expected condition.$throws #1. This is nice for writing your own abstractions.%sAn 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.&:Apply a monadic predicate to every element in a list, and % that at least one succeeds.':Apply a monadic predicate to every element in a list, and % that all succeed.(}Wait until either the given action succeeds or the timeout is reached. The action will be retried every .5 seconds until no # or    6 exceptions occur. If the timeout is reached, then a F exception will be raised. The timeout value is expressed in seconds.) Similar to (; but allows you to also specify the poll frequency of the WDB action. The frequency is expressed as an integer in microseconds.*Like (J, but retries the action until it fails or until the timeout is exceeded.+Like )Q, but retries the action until it either fails or until the timeout is exceeded. bInternal function used to implement explicit wait commands using success and failure continuations,Convenience function to catch   % exceptions and perform some action.Example: LwaitUntil 5 (getText <=< findElem $ ByCSS ".class") `onTimeout` return ""#!$)Reason why the expected condition failed.%&'()*+ ",##$%&'()*+,()*+#%$,&' #!$%&'()*+ ",# None:Mq5,A record that represents a single log entry.7[timestamp for the log entry. The standard does not specify the epoch or the unit of time.8log verbosity level:An HTML 5 storage type=A mouse buttonAA screen orientationDGSpecifies element(s) within a DOM tree using various selection methods.J@(Note: multiple classes are not allowed. For more control, use F)M’Cookies are delicious delicacies. When sending cookies to the server, a value of Nothing indicates that the server should use a default value. When receiving cookies from the server, a value of Nothing indicates that the server is unable to specify the value.Q/path of this cookie. if Nothing, defaults to /REdomain of this cookie. if Nothing, the current pages domain is usedSIs this cookie secure?ThExpiry date expressed as seconds since the Unix epoch Nothing indicates that the cookie never expiresUSpecifies the frame used by qVDfocus on the first frame, or the main document if iframes are used.Wfocus on a frame Xfocus on a frame by name or IDZAn existential wrapper for any $Y instance. This allows us to pass parameters of many different types to Javascript code.%FConvenience function to handle webdriver commands with no return value&<Convenience function to ignore result of a webdriver command\$Create a new session with the given •.]-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.`GSets the amount of time we implicitly wait when searching for elements.aOSets the amount of time we wait for an asynchronous script to return a result.bOSets the amount of time to wait for a page to finish loading before throwing a  exceptionc!Gets the URL of the current page.d"Opens a new page by the given URL.e(Navigate forward in the browser history.f)Navigate backward in the browser history.gRefresh the current pagehłInject a snippet of Javascript into the page for execution in the context of the currently selected frame. The executed script is assumed to be synchronous and the result of evaluating the script is returned 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 corresponding 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 function body. The value returned by that function will be returned to the client. The function will be invoked with the provided argument list and the values may be accessed via the arguments object in the order specified.iWExecutes a snippet of Javascript code asynchronously. This function works similarly to h’1, except that the Javascript is passed a callback function as its final argument. The script should call this function to signal that it has finished executing, passing to it a value that will be returned as the result of asyncJS. A result of Nothing indicates that the Javascript function timed out (see a)j4Grab a screenshot of the current page as a PNG imagekVGrab a screenshot as a base-64 encoded PNG image. This is the protocol-defined format.q9Switch focus to the frame specified by the FrameSelector.r0Returns a handle to the currently focused windows6Returns a list of all windows available to the sessionuCloses the given windowv6Maximizes the current window if not already maximizedw)Get the dimensions of the current window.x)Set the dimensions of the current window.y*Get the coordinates of the current window.z*Set the coordinates of the current window.{ŠCreates a Cookie with only a name and value specified. All other fields are set to Nothing, which tells the server to use default values.|1Retrieve all cookies visible to the current page.}Set a cookie. If the cookie path is not specified, it will default to "/". Likewise, if the domain is omitted, it will default to the current page's domain~WDelete a cookie. This will do nothing is the cookie isn't visible to the current page.€/Delete 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.†6Search for an element using the given element as root.‡GFind all elements matching a selector, using the given element as root.ˆlDescribe the element. Returns a JSON object whose meaning is currently undefined by the WebDriver protocol.‰Click on an element.ŠUSubmit a form element. This may be applied to descendents of a form element as well.‹)Get all visible text within this element.Œ˜Send a sequence of keystrokes to an element. All modifier keys are released 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 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”8Retrieve the value of an element's computed CSS property•'Retrieve an element's current position.–#Retrieve an element's current size.—@Determines if two element identifiers refer to the same element.˜BDetermines if two element identifiers refer to different elements.™AGet the current screen orientation for rotatable display devices.šASet the current screen orientation for rotatable display devices.› Get the text of an alert dialog.œ/Sends keystrokes to Javascript prompt() dialog.-Accepts the currently displayed alert dialog.ž/Dismisses the currently displayed alert dialog.ŸEMoves the mouse to the given position relative to the active element. 1Moves the mouse to the center of a given element.”DMoves the mouse to the given position relative to the given element.¢@Click at the current mouse position with the given mouse button.£oPerform the given action with the left mouse button held down. The mouse is automatically released afterwards.¤yPress and hold the left mouse button down. Note that undefined behavior occurs if the next mouse command is not mouseUp.„Release the left mouse button.¦+Double click at the current mouse location.§?Single tap on the touch screen at the given element's location.ØDEmulates pressing a finger down on the screen at the given location.©AEmulates 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¬cEmulate 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.Æ›Emulate a flick on the touch screen. The coordinates indicate x and y velocity, respectively. Use this function if you don't care where the flick starts.°$Emulate a flick on the touch screen.±4Get the current geographical location of the device.²4Set the current geographical location of the device.³:Uploads a file from the local filesystem by its file path.“3Uploads a raw bytestring with associated file info.µŒLowest level interface to the file uploading mechanism. This allows you to specify the exact details of the zip entry sent across network.¶5Get the current number of keys in a web storage area.·/Get a list of all keys from a web storage area.ø0Delete all keys within a given web storage area.¹ÉGet the value associated with a key in the given web storage area. Unset keys result in empty strings, since the Web Storage spec makes no distinction between the empty string and an undefined value.ŗ(Set a key in the given web storage area.»+Delete a key in the given web storage area.'A wrapper around ' to create web storage URLs.¼*Get information from the server as a JSON ē/. For more information about this object see ?http://code.google.com/p/selenium/wiki/JsonWireProtocol#/status½eRetrieve the log buffer for a given log type. The server-side log buffer is reset after each request.ˆWhich log types are available is server defined, but the wire protocol lists these as common log types: client, driver, browser, server¾"Get a list of available log types.”-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[%&\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°flick velocity(a location relative to the given elementthe given element±²³“&File path to use with this bytestring.1Modification time (in seconds since Unix epoch).&The file contents as a lazy ByteStringµ¶·ø¹ŗ»'¼½¾æ()*+,-./012¢IJKLMNOPQR-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æ¢\_]^defgc‚jk`abDLKJIHGFEƒ„†‡‰Š‹Œ“”•–‘’Ž…ˆ—˜hiZ[rustvwxyzqUYXWVMNOPQRST{|}~€›œžŸ ”¢=@?>¤„£¦:<;¶·ø¹ŗ»-3210/.æACB™š±²§Ø©Ŗ«¬­®Æ°lmnop³“µ¼½¾456789IRQPONMLKJ|-3210/.456789:<;=@?>ACBDLKJIHGFEMNOPQRSTUYXWVZ[%&\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»'¼½¾æ()*+,-./012—˜None36=BKĄeA monadic interface to the WebDriver server. This monad is simply a state monad transformer over 3E, threading session information between sequential webdriver commandsĀ Executes a Ą computation within the 3 monad, using the given Ė.Ć Executes a Ą computation within the 38 monad, automatically creating a new session beforehand.JNOTE: session is not automatically closed. If you want this behavior, use Å.ÄLocally sets a Ė for use within the given Ą” action. The state of the outer action is unaffected by this function. This function is useful if you need to work with multiple sessions at once.ÅPA finalizer ensuring that the session is always closed at the end of the given Ą& action, regardless of any exceptions.Ę™Exception handler that closes the session when an asynchronous exception is thrown, but otherwise leaves the session open if the action was successful.ĒLPrints a history of API requests to stdout after computing the given action.ĄĮ45ĀĆÄÅĘĒ6789:ĄĮĀĆÄÅĘĒĄĮĀĆÄÅĘĒ ĄĮĀĆÄÅĘĒ679845:None÷34?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®°±²ĖĢĶĪĻŠŃŅÓŌÕŲŁŚŪÜŻŽßąäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’     -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[{ĄĮ÷ĄĮĖĢĶĪĻŠŃŅÓŌÕŲŁŚŪÜŻŽßą•–—˜™š›œžŸ ”¢£¤„¦§Ø©ŖahgfedcbW`_^\X]YZ[SVUTi‘Œ|onmlkj’“”Ž}~€‚ƒ„…†‡ˆ‰Š‹pqrstuvwxyz{«¬­®°±²IRQPONMLKJBHGFEDC?A@DLKJIHGFEZ[UYXWVMNOPQRST{ACB=@?>:<;456789-3210/.34   ń  ’žżüūśłų÷öõōóņźėģķīļšäåęēčéNone’G34IJKLMNOPQRWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®°±²ŲŁŚŪÜŻŽßąäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’     -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒvĄĮŲŁŚŪÜŻŽßąĀĆÄÅĘĒ•–—˜™š›œžŸ ”¢£¤„¦§Ø©ŖahgfedcbW`_^\X]YZ[i‘Œ|onmlkj’“”Ž}~€‚ƒ„…†‡ˆ‰Š‹pqrstuvwxyz{IRQPONMLKJ«¬­®°±²; !"#$%&''()*+,--../0123456789:;<=>?@ABCDEFGHHIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£A¤„¦§§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×Ų Ł Ś Ū Ü Ü Ż Ž ß ą į ā ć ä ä å ę ē ē č é ź ė ģ ķ ī ļšńņņóōõö÷÷ųłśūüżž’          ! ! " # $ %&'()*+,-./ 0 1 2 3 4 5 6 7 8 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O O P Q R S T U V W X Y Z [ [  \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   ” ¢ £ ¤ „ ¦ § Ø © Ŗ « ¬ ­ ® Æ ° ± ² ³ “ µ ¶ · ø ¹ ŗ » ¼ ½ ¾ææĄĮĀĆÄ"ÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćŽßäŽåęŽēčŽßéźėģķīļšńņóōņóõö÷ųņółö÷śūüż ž ’       ģķ      ūü !"#$%& ' ( ) *+&,-Žå. / 0 1 2 3 4 5 6 7 8 9 : ; <ö÷=>?@ABCDEwebdriver-0.6.0.2Test.WebDriver.Commands.WaitTest.WebDriver.ClassTest.WebDriver.Chrome.ExtensionTest.WebDriver.Firefox.ProfileTest.WebDriver.Common.ProfileTest.WebDriver.UtilsTest.WebDriver.JSONTest.WebDriver.CapabilitiesTest.WebDriver.SessionTest.WebDriver.ConfigTest.WebDriver.ExceptionsTest.WebDriver.Commands Test.WebDriver.Commands.InternalTest.WebDriver.MonadTest.WebdriverchromeExtensionsTest.WebDriver createSession runSessionTest.WebDriver.InternalTest.WebDriver.Types cond-0.4.1.1Control.ConditionalnotM<&&><||>ifMhttp-types-0.8.5Network.HTTP.Types.Method methodDelete methodPost methodGetMethodChromeExtension loadExtensionloadRawExtensionToPreftoPrefProfileParseError ProfilePrefPrefBool PrefString PrefDouble PrefIntegerPreparedProfileProfile profileFiles profilePrefsgetPrefaddPref deletePrefaddFile deleteFilehasFile addExtensiondeleteExtension hasExtension unionProfilesonProfilePrefsonProfileFilesprepareLoadedProfile_prepareZippedProfileprepareZipArchive prepareRawZipFirefoxdefaultProfile loadProfileprepareProfileprepareTempProfileprepareLoadedProfile urlEncodeNoReturnBadJSONsinglepairtriple parseJSON' fromJSON'!: parsePair parseTriple apResultToWDaesonResultToWDIEElementScrollBehavior AlignBottomAlignTop IELogLevel IELogFatal IELogError IELogWarn IELogInfo IELogDebug IELogTraceLogLevelLogAll LogFinestLogFinerLogFine LogConfigLogInfo LogWarning LogSevereLogOffUnexpectedAlertBehavior IgnoreAlert DismissAlert AcceptAlert ProxyTypeManualftpProxysslProxy httpProxyPAC autoConfigUrl AutoDetectUseSystemSettingsNoProxyPlatformAnyUnixLinuxMacVistaXPWindowsBrowserAndroidIPadIPhoneHTMLUnitOpera operaBinary operaProduct operaDetachoperaAutoStart operaIdle operaDisplay operaLauncher operaPort operaHost operaOptions operaLogFile operaLogPrefIEieIgnoreProtectedModeSettingsieIgnoreZoomSettingieInitialBrowserUrlieElementScrollBehaviorieEnablePersistentHoverieEnableElementCacheCleanupieRequireWindowFocusieBrowserAttachTimeout ieLogFile ieLogLevelieHost ieExtractPathieSilentieForceCreateProcess ieSwitchesChromechromeDriverVersion chromeBinary chromeOptions ffProfile ffLogPrefffBinary CapabilitiesbrowserversionplatformproxyjavascriptEnabledtakesScreenshot handlesAlertsdatabaseEnabledlocationContextEnabledapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnabledwebStorageEnabled rotatableacceptSSLCerts nativeEventsunexpectedAlertBehavioradditionalCaps defaultCapsallCapsfirefoxchromeieoperahtmlUnitiPhoneiPadandroid!$fFromJSONIEElementScrollBehavior$fToJSONIEElementScrollBehavior $fDefaultIEElementScrollBehavior$fFromJSONIELogLevel$fToJSONIELogLevel$fDefaultIELogLevel$fFromJSONLogLevel$fToJSONLogLevel$fDefaultLogLevel!$fFromJSONUnexpectedAlertBehavior$fToJSONUnexpectedAlertBehavior$fToJSONProxyType$fFromJSONProxyType$fFromJSONPlatform$fToJSONPlatform$fFromJSONBrowser$fToJSONBrowser$fDefaultBrowser$fFromJSONCapabilities$fToJSONCapabilities$fDefaultCapabilitiesWDSessionState getSession putSession WDSession wdSessHost wdSessPortwdSessBasePathwdSessId wdSessHistwdSessHistUpdatewdSessHTTPManager SessionIdlastHTTPRequest modifySessionWDConfigwdHostwdPortwdCapabilitieswdKeepSessHist wdBasePath wdHTTPManager defaultConfig mkSession WebDriver doCommand StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsgerrSess errScreenerrClasserrStackFailedCommandTypeInvalidXPathSelectorReturnTypeInvalidXPathSelectorMoveTargetOutOfBoundsSessionNotCreatedInvalidSelectorIMEEngineActivationFailedIMENotAvailableInvalidElementCoordinates ScriptTimeout NoAlertOpenUnexpectedAlertOpenUnableToSetCookieInvalidCookieDomain NoSuchWindowTimeoutXPathLookupErrorJavascriptErrorElementIsNotSelectable UnknownErrorInvalidElementStateElementNotVisibleStaleElementReference UnknownFrame NoSuchFrame NoSuchElement FailedCommand ServerErrorUnknownCommand HTTPConnErrorHTTPStatusUnknown InvalidURLmkFailedCommandInfo failedCommand NoSessionId WindowHandleElement currentWindow doSessCommand doElemCommand doWinCommand ExpectFailed unexpectedexpect expectAny expectAll waitUntil waitUntil' waitWhile waitWhile' onTimeoutApplicationCacheStatusObsolete UpdateReady DownloadingCheckingIdleUncachedLogTypeLogEntrylogTimelogLevellogMsgWebStorageTypeSessionStorage LocalStorage MouseButton RightButton MiddleButton LeftButton OrientationPortrait LandscapeSelectorByXPathByCSSByPartialLinkText ByLinkTextByTagByClassByNameByIdCookiecookName cookValuecookPath cookDomain cookSecure cookExpiry FrameSelector DefaultFrame WithElementWithName WithIndexJSArgsessionsgetCaps closeSessionsetImplicitWaitsetScriptTimeoutsetPageLoadTimeout getCurrentURLopenPageforwardbackrefresh executeJSasyncJS screenshotscreenshotBase64availableIMEEnginesactiveIMEEnginecheckIMEActive activateIME deactivateIME focusFramegetCurrentWindowwindows focusWindow closeWindowmaximize getWindowSize setWindowSize getWindowPos setWindowPosmkCookiecookies setCookie deleteCookiedeleteCookieByNamedeleteVisibleCookies 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 deleteKey serverStatusgetLogs getLogTypesgetApplicationCacheStatusWDrunWD withSession finallyClosecloseOnExceptiondumpSessionHistory $fToPrefFixed $fToPrefRatio $fToPrefFloat$fToPrefDouble$fToPrefWord64$fToPrefWord32$fToPrefWord16 $fToPrefWord8 $fToPrefWord $fToPrefInt64 $fToPrefInt32 $fToPrefInt16 $fToPrefInt8 $fToPrefInt$fToPrefInteger $fToPrefBool $fToPref[] $fToPrefText$fExceptionProfileParseError$fFromJSONProfilePref$fToJSONProfilePref$fToJSONPreparedProfile$fFromJSONPreparedProfile prefsParsermkTemp aeson-0.8.0.2Data.Aeson.Types.Internalobjectbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteStringValueData.Aeson.Types.ClassFromJSONData.Aeson.Types.Instances.:Object$fFromJSONNoReturn$fExceptionBadJSONdata-default-class-0.0.1Data.Default.ClassDefault text-1.1.1.3Data.Text.InternalTextbase Data.MaybeMaybeNothingghc-prim GHC.TypesBoolJustTruehttp-client-0.3.8.2Network.HTTP.Client.TypesManager$fWDSessionStateRWST$fWDSessionStateRWST0$fWDSessionStateErrorT$fWDSessionStateReaderT$fWDSessionStateWriterT$fWDSessionStateIdentityT$fWDSessionStateMaybeT$fWDSessionStateStateT$fWDSessionStateStateT0def$fDefaultWDConfig$fWebDriverRWST$fWebDriverRWST0$fWebDriverErrorT$fWebDriverReaderT$fWebDriverWriterT$fWebDriverIdentityT$fWebDriverMaybeT$fWebDriverStateT$fWebDriverStateT0 WDResponse mkRequestRequestsendHTTPRequest getJSONResult$fShowFailedCommandInfo rspSessId rspStatusrspValhandleRespSessionId handleJSONErr$fFromJSONStackFrame$fFromJSONFailedCommandInfo$fShowStackFrame$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionInvalidURL$fFromJSONWDResponse$fExceptionNoSessionId$fDefaultWindowHandle$fToJSONElement$fFromJSONElement waitEitherwait'$fExceptionExpectFailedToJSONnoReturn ignoreReturndoStorageCommand $fFromJSONApplicationCacheStatus$fFromJSONLogEntry$fFromJSONMouseButton$fToJSONMouseButton$fFromJSONOrientation$fToJSONOrientation$fToJSONSelector$fFromJSONCookie$fToJSONFrameSelector $fToJSONJSArg$fToJSONCookieIOStWDunStWD $fWebDriverWD$fWDSessionStateWD TFCo:R:StMWDa$fMonadBaseControlIOWD$fMonadBaseIOWD