`      !"#$%&'()*+,-./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 { | } ~                                             NoneKAn 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:A typeclass to convert types to profile preference values 4An error occured while attempting to parse a profile's preference file. LA profile preference value. This is the subset of JSON values that excludes  arrays, objects, and null. 0Represents a profile that has been prepared for D network transmission. The profile cannot be modified in this form. MThis structure allows you to construct and manipulate profiles in pure code, ; deferring execution of IO operations until the profile is "prepared". This G type is shared by both Firefox and Opera profiles; when a distinction D must be made, the phantom type parameter is used to differentiate. 8A mapping from relative destination filepaths to source 8 filepaths found on the filesystem. When the profile is 9 prepared, these source filepaths will be moved to their , destinations within the profile directory. 3Using the destination path as the key ensures that / there is one unique source path going to each  destination path. 5A map of profile 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. FAdd a file to the profile directory. The first argument is the source M of the file on the local filesystem. The second argument is the destination E as a path relative to a profile directory. Overwrites any file that , previously pointed to the same destination LDelete a file from the profile directory. The first argument is the name of $ file within the profile directory. EDetermines if a profile contains the given file, specified as a path $ relative to the profile directory. BAdd a new extension to the profile. The file path should refer to : a .xpi file or an extension directory on the filesystem. DDelete an existing extension from the profile. The string parameter I should refer to an .xpi file or directory located within the extensions M directory of the profile. This operation has no effect if the extension was  never added to the profile. FDetermines 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 "JEfficiently load an existing profile from disk and prepare it for network  transmission. #BPrepare a zip file of a profile on disk for network transmission. F 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 transmission 6  !"#$%  !"#$%  ! "#$% ,    !"#$%None&'Phantom type used in the parameters of  and  ';Default Firefox Profile, used when no profile is supplied. (LLoad 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. )4Prepare a firefox profile for network transmission. F Internally, this function constructs a Firefox profile within a temp J directory, archives it as a zip file, and then base64 encodes the zipped 6 data. The temporary directory is deleted afterwards. ANOTE: because this function has to copy the profile files into a Q a temp directory before zip archiving them, this operation is likely to be slow 4 for large profiles. In such a case, consider using " or  # instead. *+Apply a function on a default profile, and C prepare the result. The Profile 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.  NOTE: like )0, the same caveat about large profiles applies. &'()*+$  !"#$%&'()*+$&'  ! )*(+"#$% &'()*+None6666None 7MA type indicating that we expect no return value from the webdriver request. P Its FromJSON instance parses successfully for any values that indicate lack of > a return value (a notion that varies from server to server). 9,An error occured when parsing a JSON value. ;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. A Parse a JSON 7 as a pair. The first two string arguments specify the F keys to extract from the object. The third string is the name of the / calling function, for better error reporting. BBParse a JSON Object as a triple. The first three string arguments L specify the keys to extract from the object. The fourth string is the name 6 of the calling function, for better error reporting. C'Convert an attoparsec parser result to WD. D"Convert an Aeson parser result to WD. 789:;<=>?@ABCD789:;<=>?@ABCD@>?;<=ABCD9:78789:;<=>?@ABCDNoneDE6Specifies how elements scroll into the viewport. (see ) H%Logging levels for Internet Explorer O)Indicates a log verbosity level. Used in & and u configuration. ]!Available settings for the proxy  field ^7Manually specify proxy hosts as hostname:port strings. 4 Note that behavior is undefined for empty strings. b.Use a proxy auto-config file specified by URL gMRepresents platform options supported by WebDriver. The value Any represents  no preference. oIThis constructor simultaneously specifies which browser the session will C 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. p/some other browser, specified by a string name v%Server-side path to the Opera binary wWhich Opera product we're using, e.g. "desktop",  "core" x2Whether the Opera instance should stay open after 5 we close the session. If false, closing the session  closes the browser. y2Whether to auto-start the Opera binary. If false, 1 OperaDriver will wait for a connection from the # browser. By default this is True. zWhether to use Opera's alternative implicit wait 5 implementation. It will use an in-browser heuristic 1 to guess when a page has finished loading. This 3 feature is experimental, and disabled by default. {$(*nix only) which X display to use. |1Path to the launcher binary to use. The launcher 0 is a gateway between OperaDriver and the Opera / browser. If Nothing, OperaDriver will use the % launcher supplied with the package. }6The port we should use to connect to Opera. If Just 0 2 , 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. ~,The host Opera should connect to. Unless you're  starting Opera manually you won' t need this. )Command-line arguments to pass to Opera. 5Where to send the log output. If Nothing, logging is  disabled. "Log level preference. Defaults to U 8Whether 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 2 all zones, an exception will be thrown on driver  construction. 4Indicates whether to skip the check that the browser's zoom 9 level is set to 100%. Value is set to false by default. ;Allows the user to specify the initial URL loaded when IE > starts. Intended to be used with ignoreProtectedModeSettings B 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 A of the viewport. The default value is to align with the top of  the viewport. <Determines whether persistent hovering is enabled (true by C default). Persistent hovering is achieved by continuously firing C mouse over events at the last location the mouse cursor has been  moved to. ADetermines 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 9 delivers much more accurate native events interactions. >The timeout, in milliseconds, that the driver will attempt to C 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 I AThe address of the host adapter on which the server will listen  for commands. AThe path to the directory used to extract supporting files used A by the server. Defaults to the TEMP directory if not specified. 9Suppresses diagnostic output when the server is started. AForces launching Internet Explorer using the CreateProcess API. ; If this option is not specified, IE is launched using the C 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 2 Explorer. This is only valid when used with the  forceCreateProcess. 5Version of the Chrome Webdriver server server to use )for more information on chromedriver see   3http://code.google.com/p/selenium/wiki/ChromeDriver /Server-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. (The firefox profile to use. If Nothing, 6 a default temporary profile is automatically created  and used. Firefox logging preference 0Server-side path 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 run. Proxy configuration settings. 6Whether the session supports executing JavaScript via   executeJS and asyncJS. 7Whether the session supports taking screenshots of the  current page with the  screenshot command 4Whether the session can interact with modal popups, - such as window.alert and window.confirm via   acceptAlerts,  dismissAlerts, etc. 8Whether the session can interact with database storage. 1Whether the session can set and query the browser's  location context with  setLocation and  getLocation. <Whether the session can interact with the application cache  . -Whether the session can query for the browser's ( connectivity and disable it if desired :Whether the session supports CSS selectors when searching  for elements. Whether Web Storage (getKey, setKey, etc) support is  enabled /Whether 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 7Whether the session is capable of generating native OS $ events when simulating user input. 1How the session should handle unexpected alerts.  A list of (, 9) 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   . IDefault Firefox settings. All Maybe fields are set to Nothing. ffLogPref  is set to U. MDefault Chrome settings. All Maybe fields are set to Nothing, no options are ( specified, and no extensions are used. Default IE settings. See the " constructor for more details on  individual defaults  Default Opera settings. See the u! constructor for more details on  individual defaults. EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~toutsrqpvwxyz{|}~gnmlkjih]fedb^c_`aY\[ZOXWVUTSRQPHNMLKJIEGF'EGFHNMLKJIO XWVUTSRQPY\[Z] fedb^c_`agnmlkjiho+utsrqpvwxyz{|}~None LAn opaque identifier for a WebDriver session. These handles are produced by Lthe server on session creation, and act to identify a session in progress. @Information about a WebDriver session. This structure is passed implicitly through all WD1 computations, and is also used to configure the WD monad before execution. +Host name of the WebDriver server for this  session (default 127.0.0.1) )Port number of the server (default 4444) /An opaque reference identifying the session to  use with WD commands. - A value of Nothing indicates that a session  hasn't been created yet.  Sessions can be created within WD via   , or created  and closed automatically with   7The last HTTP request issued by this session, if any. GA class for monads that can handle wire protocol requests. This is the A operation underlying all of the high-level commands exported in  Test.WebDriver.Commands0. For more information on the wire protocol see   7http://code.google.com/p/selenium/wiki/JsonWireProtocol AA class for monads that carry a WebDriver session with them. The D MonadBaseControl superclass is used for exception handling through  the lifted-base package. >A default session connects to localhost on port 4444, and hasn't been 3initialized server-side. This value is the same as  but with a less polymorphic type. #HTTP request method URL of request #JSON parameters passed in the body / of the request. Note that, as a special case, 1 anything that converts to Data.Aeson.Null will " result in an empty request body. %The JSON result of the HTTP request. ,-./01234550-1.2/,43NoneFAn individual stack frame from the stack trace provided by the server  during a FailedCommand. FDetailed information about the failed command provided by the server. The error message. The session associated with  the exception. $A 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. 3The type of failed command exception that occured. CThis exception encapsulates a broad variety of exceptions that can  occur when a command fails.  A server-side exception occured 7A command was sent to the WebDriver server that it didn' t recognize. HTTP connection errors. 2An unexpected HTTP status was sent by the server. An invalid URL was given 4Internal type representing the JSON response object ;Constructs a FailedCommandInfo from only an error message.  Convenience function to throw a  locally with no server-side  info present. BProvides a readable printout of the error information, useful for  logging. J     ?      NoneFA 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 5 that always refers to the currently focused window.  This is also used by the  instance. !This a convenient wrapper around  that automatically prepends I the session URL parameter to the wire command URL. For example, passing  a URL of "refresh\" will expand to \"session :sessionIdrefresh", where / :sessionId is a URL parameter as described in   7http://code.google.com/p/selenium/wiki/JsonWireProtocol A wrapper around  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  to create window handle URLS.  For example, passing a URL of "/size" will expand to  "session :sessionIdwindow :windowHandle/", where :sessionId and D :windowHandle are URL parameters as described in the wire protocol     None99:99:None @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.  :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.  GWait until either the given action succeeds or the timeout is reached. 6 The action will be retried every .5 seconds until no  or   . exceptions occur. If the timeout is reached,  then a - exception will be raised. The timeout value  is expressed in seconds.  Similar to  3 but allows you to also specify the poll frequency  of the WDC 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 2, but retries the action until it either fails or  until the timeout is exceeded. Convenience function to catch   exceptions  and perform some action.  Example: 5 waitUntil 5 (getText <=< findElem $ ByCSS ".class")  `onTimeout` return ""  *Reason why the expected condition failed.                      Noneq-A record that represents a single log entry. +timestamp for the log entry. The standard , does not specify the epoch or the unit of  time. log verbosity level An HTML 5 storage type "A mouse button &A screen orientation )HSpecifies element(s) within a DOM tree using various selection methods. / (Note: multiple classes are not  allowed. For more control, use +) 2NCookies 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. 6path of this cookie.  if Nothing, defaults to / 7domain of this cookie.  if Nothing, the current pages  domain is used 8Is this cookie secure? 9Expiry date expressed as  seconds since the Unix epoch  Nothing indicates that the  cookie never expires :Specifies the frame used by V ;/focus on the first frame, or the main document  if iframes are used. <focus on a frame  =focus on a frame by name or ID ?An existential wrapper for any " instance. This allows us to pass 8 parameters of many different types to Javascript code. GConvenience function to handle webdriver commands with no return value =Convenience function to ignore result of a webdriver command A$Create a new session with the given . B-Retrieve a list of active sessions and their . CGet the actual  of the current session. D>Close the current session and the browser associated with it. EHSets the amount of time we implicitly wait when searching for elements. FGSets the amount of time we wait for an asynchronous script to return a  result. GOSets the amount of time to wait for a page to finish loading before throwing a  exception H"Gets the URL of the current page. I#Opens a new page by the given URL. J)Navigate forward in the browser history. K*Navigate backward in the browser history. LRefresh the current page MBInject 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. NJExecutes a snippet of Javascript code asynchronously. This function works  similarly to M2, 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 Jreturned as the result of asyncJS. A result of Nothing indicates that the #Javascript function timed out (see F) O5Grab a screenshot of the current page as a PNG image PWGrab a screenshot as a base-64 encoded PNG image. This is the protocol-defined format. V:Switch focus to the frame specified by the FrameSelector. W1Returns a handle to the currently focused window X7Returns a list of all windows available to the session ZCloses 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. `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. a2Retrieve all cookies visible to the current page. bFSet 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 c7Delete a cookie. This will do nothing is the cookie isn't visible to the  current page. d0Delete all visible cookies on the current page. eGet the current page source f#Get the title of the current page. g>Find an element on the page using the given element selector. h;Find all elements on the page matching the given selector. i-Return the element that currently has focus. j7Search for an element using the given element as root. kHFind all elements matching a selector, using the given element as root. lGDescribe the element. Returns a JSON object whose meaning is currently & undefined by the WebDriver protocol. mClick on an element. nLSubmit a form element. This may be applied to descendents of a form element  as well. o*Get all visible text within this element. pLSend a sequence of keystrokes to an element. All modifier keys are released K 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 qSimilar to sendKeys, but doesn'#t implicitly release modifier keys E afterwards. This allows you to combine modifiers with mouse clicks. r*Return the tag name of the given element. s&Clear a textarea or text input element' s value. t&Determine if the element is selected. u%Determine if the element is enabled. v'Determine if the element is displayed. w Retrieve the value of an element' s attribute x Retrieve the value of an element's computed CSS property yRetrieve an element's current position. zRetrieve 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. HPress 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. FEmulate 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. 5Get the current geographical location of the device. 5Set the current geographical location of the device. ;Uploads a file from the local filesystem by its file path. 4Uploads a raw bytestring with associated file info. 8Lowest level interface to the file uploading mechanism. 1 This allows you to specify the exact details of $ the zip entry sent across network. 6Get the current number of keys in a web storage area. 0Get a list of all keys from a web storage area. 1Delete all keys within a given web storage area. CGet 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. )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 fRetrieve the log buffer for a given log type. The server-side log buffer is reset after each request. hWhich 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 element the given element 'File path to use with this bytestring. Modification time  (in seconds since Unix epoch). 'The file contents as a lazy ByteString  !"#$%&'OPQRSTUVWX !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ADBCIJKLHefOPEFG)10/.-,+*ghjkmnopqswxyztuvril{|MN?@WZXY[\]^_V:>=<;23456789`abcd"%$#! &('}~QRSTUOXWVUTSRQP{! "%$#&(')10/.-,+*23456789:>=<;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&' NoneDA monadic interface to the WebDriver server. This monad is simply a ! state monad transformer over (F, threading session information between sequential webdriver commands  Executes a  computation within the ( monad, using the given  . Like ?, but automatically creates a session beforehand and closes it - afterwards. This is a very common use case. Locally 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. EA finalizer ensuring that the session is always closed at the end of  the given ' action, regardless of any exceptions.  A variant of & that only closes the session when an I asynchronous exception is thrown, but otherwise leaves the session open  if the action was successful. )*+, )*+,None9:EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@`gnmlkjih]fedb^c_`aY\[Zoutsrqpvwxyz{|}~OXWVUTSRQPHNMLKJIEGF)10/.-,+*?@:>=<;23456789`&('"%$#! 9:NoneF9:OPQRSTUVWX]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~vgnmlkjih]fedb^c_`aoutsrqpvwxyz{|}~OXWVUTSRQP- !"#$%%&&'()*+,-./0123456789:;<=>?@A?@B?@C?@D?@E?@F?@G?@H?@I?@JKLLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9                              ! " # $ % & ' ( ) * + , - . / 0 1 2 3 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 { | } ~                                                      ! " # $ % & ' ( ) * + , -. / 0 1 23webdriver-0.5.2Test.WebDriver.Commands.WaitTest.WebDriver.Chrome.ExtensionTest.WebDriver.Firefox.ProfileTest.WebDriver.Common.ProfileTest.WebDriver.ClassesTest.WebDriver.UtilsTest.WebDriver.JSONTest.WebDriver.CapabilitiesTest.WebDriver.ExceptionsTest.WebDriver.Commands Test.WebDriver.Commands.InternalTest.WebDriver.MonadTest.WebdriverchromeExtensionsTest.WebDriver createSession runSessionTest.WebDriver.InternalTest.WebDriver.Types cond-0.4.0.2Control.ConditionalnotM<&&><||>ifMChromeExtension loadExtensionloadRawExtensionToPreftoPrefProfileParseError ProfilePrefPrefBool PrefString PrefDouble PrefIntegerPreparedProfileProfile profileFiles profilePrefsgetPrefaddPref deletePrefaddFile deleteFilehasFile addExtensiondeleteExtension hasExtension unionProfilesonProfilePrefsonProfileFilesprepareLoadedProfile_prepareZippedProfileprepareZipArchive prepareRawZipFirefoxdefaultProfile loadProfileprepareProfileprepareTempProfileprepareLoadedProfile HTTP-4000.2.8Network.HTTP.BaseTRACEPUTPOSTOPTIONSHEADGETDELETECustomCONNECT RequestMethod 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 SessionId WDSessionwdHostwdPort wdBasePathwdSessIdlastHTTPRequest WebDriver doCommand SessionState getSession putSession modifySessiondefaultSession StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsgerrSess errScreenerrClasserrStackFailedCommandTypeMethodNotAllowedInvalidXPathSelectorReturnTypeInvalidXPathSelectorMoveTargetOutOfBoundsInvalidSelectorIMEEngineActivationFailedIMENotAvailableInvalidElementCoordinates 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 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 deleteKey serverStatusgetLogs getLogTypesgetApplicationCacheStatusWDrunWD withSession finallyClosecloseOnException $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.6.2.0Data.Aeson.Types.Internalobjectbytestring-0.10.0.2Data.ByteString.Lazy.Internal ByteStringValueData.Aeson.Types.ClassFromJSON.:Object$fFromJSONNoReturn$fExceptionBadJSONdata-default-class-0.0.1Data.Default.ClassDefault text-0.11.2.3Data.Text.InternalTextbase Data.MaybeMaybeNothingghc-prim GHC.TypesBoolJustTrue!$fFromJSONIEElementScrollBehavior$fToJSONIEElementScrollBehavior $fDefaultIEElementScrollBehavior$fFromJSONIELogLevel$fToJSONIELogLevel$fDefaultIELogLevel$fFromJSONLogLevel$fToJSONLogLevel$fDefaultLogLevel!$fFromJSONUnexpectedAlertBehavior$fToJSONUnexpectedAlertBehavior$fToJSONProxyType$fFromJSONProxyType$fFromJSONPlatform$fToJSONPlatform$fFromJSONBrowser$fToJSONBrowser$fDefaultBrowser$fFromJSONCapabilities$fToJSONCapabilities$fDefaultCapabilitiesdef$fWebDriverRWST$fSessionStateRWST$fWebDriverRWST0$fSessionStateRWST0$fWebDriverErrorT$fSessionStateErrorT$fWebDriverReaderT$fSessionStateReaderT$fWebDriverWriterT$fSessionStateWriterT$fWebDriverIdentityT$fSessionStateIdentityT$fWebDriverMaybeT$fSessionStateMaybeT$fWebDriverStateT$fSessionStateStateT$fWebDriverStateT0$fSessionStateStateT0$fDefaultWDSession WDResponse$fShowFailedCommandInfo rspSessId rspStatusrspValmkWDUri mkRequest handleHTTPErrhandleHTTPResp handleJSONErr$fFromJSONStackFrame$fFromJSONFailedCommandInfo$fShowStackFrame$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionInvalidURL$fFromJSONWDResponse$fExceptionNoSessionId$fDefaultWindowHandle$fToJSONElement$fFromJSONElementwait'$fExceptionExpectFailedToJSONnoReturn ignoreReturndoStorageCommand $fFromJSONApplicationCacheStatus$fFromJSONLogEntry$fFromJSONMouseButton$fToJSONMouseButton$fFromJSONOrientation$fToJSONOrientation$fToJSONSelector$fFromJSONCookie$fToJSONFrameSelector $fToJSONJSArg$fToJSONCookieIO $fWebDriverWD$fSessionStateWD$fMonadBaseControlIOWD$fMonadBaseIOWD