^9>      !"#$%&'()*+,-./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 { | } ~                                                                                       None4C^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+345C9A 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  !"#$%  !"#$% ! "#$% ,    !"#$%None4CN&'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.&'()*+$  !"#$%&'()*+$&' ! )*(+"#$% &'()*+None,,,,None+4 -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)./+An error occured when parsing a JSON value.1Construct a singleton JSON  from a key and value.2Construct a 2-element JSON + from a pair of keys and a pair of values.3Construct a 3-element JSON / from a triple of keys and a triple of values.4 Parse a lazy  as a top-level JSON %, then convert it to an instance of ..5Convert a JSON  to an instance of .6(This operator is a wrapper over Aeson's  operator.7Emulates the behavior of  F in Aeson versions < 0.10, allowing the field to be either missing or   if the result type is a  <. In newer Aeson versions (>= 0.10), this is equivalent to: fmap join (o .:? k)8 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.9Parse 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.-./0123456789:; -./0123456789:;674512389:;/0-.-./0123456789:; None&L<6Specifies how elements scroll into the viewport. (see t)?$Logging levels for Internet ExplorerF)Indicates a log verbosity level. Used in & and  configuration.T!Available settings for the proxy  fieldX-Use a proxy auto-config file specified by URLZjManually specify proxy hosts as hostname:port strings. Note that behavior is undefined for empty strings.^\Represents platform options supported by WebDriver. The value Any represents no preference.fThis 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.hhThe firefox profile to use. If Nothing, a default temporary profile is automatically created and used.iFirefox logging preferencejUServer-side path to Firefox binary. If Nothing, use a sensible system-based default.l4Version of the Chrome Webdriver server server to use*for more information on chromedriver see 3http://code.google.com/p/selenium/wiki/ChromeDrivermTServer-side path to Chrome binary. If Nothing, use a sensible system-based default.n=A list of command-line options to pass to the Chrome binary.oA list of extensions to use.qWhether 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.rtIndicates whether to skip the check that the browser's zoom level is set to 100%. Value is set to false by default.sXAllows 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.tAllows 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.uDetermines 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.vDetermines 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.wDetermines 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.xThe 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.y\The path to file where server should write log messages to. By default it writes to stdout.z.The log level used by the server. Defaults to E{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.$Server-side path to the Opera binary8Which Opera product we're using, e.g. "desktop", "core"{Whether the Opera instance should stay open after we close the session. If false, closing the session closes the browser.Whether to auto-start the Opera binary. If false, OperaDriver will wait for a connection from the browser. By default this is True.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.#(*nix only) which X display to use.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.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.]The host Opera should connect to. Unless you're starting Opera manually you won't need this.(Command-line arguments to pass to Opera.?Where to send the log output. If Nothing, logging is disabled."Log level preference. Defaults to J.some other browser, specified by a string nameTA 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 commandbWhether 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 desiredHWhether the session supports CSS selectors when searching for elements.Whether Web Storage (getKey, setKey, etc) support is enabledJWhether the session can rotate the current page's current layout between Portrait and  Landscape orientations.:Whether the session should accept all SSL certs by defaultZWhether 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. Read/write A typeclass for writable A typeclass for readable  Modifies the wdCapabilities field of a WDConfig= by applying the given function. Overloaded to work with any  instance."A helper function for setting the  capability of a  instance"A helper function for setting the  capability of a  instance"A helper function for setting the  capability of a  instance "A helper function for setting the  capability of a  instance.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 J.tDefault Chrome settings. All Maybe fields are set to Nothing, no options are specified, and no extensions are used.Default IE settings. See the p5 constructor for more details on individual defaults Default Opera settings. See the 6 constructor for more details on individual defaults.<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fgkphijlmnoqrstuvwxyz{|}~^_`abcdeTUVWXZY[\]PQRSFGHIJKLMNO?@ABCDE<=>0<=>?@ABCDEF GHIJKLMNOPQRST UVWXZY[\]^_`abcdef+gkphijlmnoqrstuvwxyz{|}~None None &+4CN1Constraint synonym for another common pairing of  and  W. This is commonly used in library types to indicate use of lifted exception handling.-Constraint synonym for the common pairing of  and  .A class for monads that carry a WebDriver session with them. The MonadBaseControl superclass is used for exception handling through the lifted-base package.0Retrieves the current session state of the monad&Sets a new session state for the monadA function used by wdHistoryConfig* to append new entries to session history.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 historyHTTP 8 used for connection pooling by the http-client library.7Number of times to retry a HTTP request if it times out5Custom request headers to add to every HTTP request. Custom request headers to add *only* to session creation requests. This is usually done when a WebDriver server requires HTTP auth.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. No session history is saved.Keep unlimited history"Saves only the most recent historyLocally sets a session state for use within the given action. The state of any outside action is unaffected by this function. This function is useful if you need to work with multiple sessions simultaneously.FThe most recent SessionHistory entry recorded by this session, if any.<The most recent HTTP request issued by this session, if any.Set a temporary list of custom t to use within the given action. All previous custom headers are temporarily removed, and then restored at the end.{Makes all webdriver HTTP requests in the given action use the session's auth headers, typically configured by setting the  wdAuthHeaders config. This is useful if you want to temporarily use the same auth headers you used for session creation with other HTTP requests.( !"#$""  !"#$None&+4CA 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 requestJSON 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+CQA 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/JsonWireProtocolA 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 protocol0123  0123None&+4^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 occured)DA 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 given1:Constructs a FailedCommandInfo from only an error message.2 Convenience function to throw a %+ locally with no server-side info present.4KProvides a readable printout of the error information, useful for logging.?      !"#$%&'()*+,-./012567489:;<=5      !"#$%&'()*+,-./012      !"#$%&'()*+,-./012567489:;<=None&4N>3Internal type representing the JSON response object?Constructs an HTTP @J value when given a list of headers, HTTP request method, and URL fragmentA4Sends an HTTP request to the remote WebDriver serverB Parses a ># object from a given HTTP response. >CDEFG?AHBIJK >CDEF?ABIJ >CDEFG?AHBIJK None436Class of types that can configure a WebDriver session.4 Produces a  from the given configuration.5 Produces a  from the given configuration.6WebDriver session configuration8GHost name of the WebDriver server for this session (default 127.0.0.1)9(Port number of the server (default 4444):$Capabilities to use for this session;2Base path for all API requests (default "/wd/hub")<4Custom request headers to add to every HTTP request.=Custom request headers to add *only* to session creation requests. This is usually done when a WebDriver server requires HTTP auth.>GSpecifies behavior of HTTP request/response history. By default we use .?Use the given http-client ' instead of automatically creating one.@CNumber of times to retry a HTTP request if it times out (default 0)AA default session config connects to localhost on port 4444, and hasn't been initialized server-side. This value is the same as L# but with a less polymorphic type. 3456789:;<=>?@AMNOP3456789:;<=>?@A6789:;<=>?@A3453456 789:;<=>?@AMNOP None9/0      !"#$%&'()*+,-./0129/0/0-.+,)*'(%&    !"#$  12 None4;NqJ,A record that represents a single log entry.L[timestamp for the log entry. The standard does not specify the epoch or the unit of time.Mlog verbosity levelOAn HTML 5 storage typeRA mouse buttonVA screen orientationYGSpecifies element(s) within a DOM tree using various selection methods.\@(Note: multiple classes are not allowed. For more control, use `)bCookies 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.f/path of this cookie. if Nothing, defaults to /gEdomain of this cookie. if Nothing, the current pages domain is usedhIs this cookie secure?ihExpiry date expressed as seconds since the Unix epoch Nothing indicates that the cookie never expiresjSpecifies the frame used by lfocus on a frame by name or IDmfocus on a frame nDfocus on the first frame, or the main document if iframes are used.oAn existential wrapper for any QY instance. This allows us to pass parameters of many different types to Javascript code.RFConvenience function to handle webdriver commands with no return valueS<Convenience function to ignore result of a webdriver commandq$Create a new session with the given F. The returned session becomes the "current session" for this action. Note: if you're using  runSessionH to run your WebDriver commands, you don't need to call this explicitly.r-Retrieve a list of active sessions and their .sGet the actual server-side  of the current session.t=Close the current session and the browser associated with it.uLSets the amount of time (ms) we implicitly wait when searching for elements.vTSets the amount of time (ms) we wait for an asynchronous script to return a result.wTSets the amount of time (ms) to wait for a page to finish loading before throwing a  exception.x!Gets the URL of the current page.y"Opens a new page by the given URL.z(Navigate forward in the browser history.{)Navigate backward in the browser history.|Refresh the current page}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 a sequence of 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.~WExecutes a snippet of Javascript code asynchronously. This function works similarly to }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 v)4Grab a screenshot of the current page as a PNG imageVGrab a screenshot as a base-64 encoded PNG image. This is the protocol-defined format.9Switch focus to the frame specified by the FrameSelector.0Returns a handle to the currently focused window6Returns a list of all windows available to the sessionCloses the given window6Maximizes 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.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 domainWDelete 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/valueSimilar 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 attribute8Retrieve 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 beginscEmulate 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.TA wrapper around  to create web storage requests.*Get information from the server as a JSON  /. For more information about this object see ?http://code.google.com/p/selenium/wiki/JsonWireProtocol#/statuseRetrieve 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.BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopRSqrstuvwxyz{|}~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 ByteStringTUVWXYZ[\]^_FGHIJKLMNOBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ԣqtrsyz{|xuvwYZ[\]^_`a}~opjklmnbcdefghiRSTUOPQBCDEFGHVWXIJKLMNFGHIJKLMNO|BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopRSqrstuvwxyz{|}~TUVWXYZ[\]^_None &47>CL%A state monad for WebDriver commands. Executes a  computation within the  monad, using the given ! as state for WebDriver requests. Executes a  computation within the 8 monad, automatically creating a new session beforehand.XNOTE: session is not automatically closed when complete. If you want this behavior, use  . Example: K runSessionThenClose action = runSession myConfig . finallyClose $ actionPA 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.1Gets the command history for the current session.LPrints a history of API requests to stdout after computing the given action. `abc `abcNone/0<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0126789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop6789:;<=>?@A^_`abcdeTUVWXZY[\]PQRSfgkphijlmnoqrstuvwxyz{|}~FGHIJKLMNO?@ABCDE<=>YZ[\]^_`aopjklmnbcdefghiVWXRSTUOPQIJKLMNBCDEFGH/0/0-.+,)*'(%&    !"#$  12None&+4N?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. the given  to not be stale and returns it: an alert to be present on the page, and returns its text. Catches any % exceptions with the given   and rethrows as }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.dbInternal function used to implement explicit wait commands using success and failure continuationsConvenience function to catch % % exceptions and perform some action.Example: LwaitUntil 5 (getText <=< findElem $ ByCSS ".class") `onTimeout` return ""e)Reason why the expected condition failed.dfg  edfgNone[/0FGHIJKLMNOTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0126789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~܊6789:;<=>?@A^_`abcdeTUVWXZY[\]fgkphijlmnoqrstuvwxyz{|}~FGHIJKLMNOh !"##$%&'())**+,-./0123456789:;<=>?@ABCDDEEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{=|}~{                          !"#$%&'()*+,-..//0011223345 6 7 8 9 9 : ; < = > ? @ A B C D E F G H I J K L L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c 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 { | } ~                                                                                              !"#$%&'() * + , - . / 0 1 2 3 456789:;<=>? @ A B CDEFGHIJKLMNO%&PQRNSTUVWXYZ[ \ ] ^ _` a b c d e f g h i j k l m nopqrstuvwebdr_3p149qtYAMl78nl12Vb9a6Test.WebDriver.ClassTest.WebDriver.Chrome.ExtensionTest.WebDriver.Firefox.ProfileTest.WebDriver.Common.ProfileTest.WebDriver.UtilsTest.WebDriver.JSONTest.WebDriver.CapabilitiesTest.WebDriver.Session.HistoryTest.WebDriver.SessionTest.WebDriver.ExceptionsTest.WebDriver.Commands Test.WebDriver.Commands.InternalTest.WebDriver.ConfigTest.WebDriver.MonadTest.WebDriver.Commands.WaitTest.WebdriverchromeExtensionsTest.WebDriver createSession runSession"Test.WebDriver.Exceptions.InternalTest.WebDriver.InternalTest.WebDriver.Typeshttpt_K1GcYiiEBxaBOQVfjX52vaNetwork.HTTP.Types.Method methodDelete methodPost methodGetMethodChromeExtension loadExtensionloadRawExtensionToPreftoPrefProfileParseError ProfilePref PrefInteger PrefDouble PrefStringPrefBoolPreparedProfileProfile profileFiles profilePrefsgetPrefaddPref deletePrefaddFile deleteFilehasFile addExtensiondeleteExtension hasExtension unionProfilesonProfilePrefsonProfileFilesprepareLoadedProfile_prepareZippedProfileprepareZipArchive prepareRawZipFirefoxdefaultProfile loadProfileprepareProfileprepareTempProfileprepareLoadedProfile urlEncodeNoReturnBadJSONsinglepairtriple parseJSON' fromJSON'!:.:?? parsePair parseTriple apResultToWDaesonResultToWDIEElementScrollBehaviorAlignTop AlignBottom IELogLevel IELogTrace IELogDebug IELogInfo IELogWarn IELogError IELogFatalLogLevelLogOff LogSevere LogWarningLogInfo LogConfigLogFineLogFiner LogFinestLogAllUnexpectedAlertBehavior AcceptAlert DismissAlert IgnoreAlert ProxyTypeNoProxyUseSystemSettings AutoDetectPAC autoConfigUrlManualftpProxysslProxy httpProxyPlatformWindowsXPVistaMacLinuxUnixAnyBrowser ffProfile ffLogPrefffBinaryChromechromeDriverVersion chromeBinary chromeOptionsIEieIgnoreProtectedModeSettingsieIgnoreZoomSettingieInitialBrowserUrlieElementScrollBehaviorieEnablePersistentHoverieEnableElementCacheCleanupieRequireWindowFocusieBrowserAttachTimeout ieLogFile ieLogLevelieHost ieExtractPathieSilentieForceCreateProcess ieSwitchesOpera operaBinary operaProduct operaDetachoperaAutoStart operaIdle operaDisplay operaLauncher operaPort operaHost operaOptions operaLogFile operaLogPrefHTMLUnitIPhoneIPadAndroid CapabilitiesbrowserversionplatformproxyjavascriptEnabledtakesScreenshot handlesAlertsdatabaseEnabledlocationContextEnabledapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnabledwebStorageEnabled rotatableacceptSSLCerts nativeEventsunexpectedAlertBehavioradditionalCapsHasCapabilitiesSetCapabilitiessetCapsGetCapabilitiesgetCaps modifyCaps useBrowser useVersion usePlatformuseProxy defaultCapsallCapsfirefoxchromeieoperahtmlUnitiPhoneiPadandroid!$fFromJSONIEElementScrollBehavior$fToJSONIEElementScrollBehavior $fDefaultIEElementScrollBehavior$fFromJSONIELogLevel$fToJSONIELogLevel$fDefaultIELogLevel$fFromJSONLogLevel$fToJSONLogLevel$fDefaultLogLevel!$fFromJSONUnexpectedAlertBehavior$fToJSONUnexpectedAlertBehavior$fToJSONProxyType$fFromJSONProxyType$fFromJSONPlatform$fToJSONPlatform$fFromJSONBrowser$fToJSONBrowser$fDefaultBrowser$fFromJSONCapabilities$fToJSONCapabilities$fDefaultCapabilities$fGetCapabilitiesCapabilitiesSessionHistory histRequest histResponsehistRetryCountWDSessionStateControlWDSessionStateIOWDSessionState getSession putSessionSessionHistoryConfig WDSession wdSessHost wdSessPortwdSessBasePathwdSessId wdSessHistwdSessHistUpdatewdSessHTTPManagerwdSessHTTPRetryCountwdSessRequestHeaderswdSessAuthHeaders SessionId noHistoryunlimitedHistoryonlyMostRecentHistory modifySession withSessionmostRecentHistorymostRecentHTTPRequestwithRequestHeaderswithAuthHeaders WebDriver doCommand NoSessionId WindowHandleElement currentWindow doSessCommand doElemCommand doWinCommand StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsgerrSess errScreenerrClasserrStackFailedCommandType NoSuchElement NoSuchFrame UnknownFrameStaleElementReferenceElementNotVisibleInvalidElementState UnknownErrorElementIsNotSelectableJavascriptErrorXPathLookupErrorTimeout NoSuchWindowInvalidCookieDomainUnableToSetCookieUnexpectedAlertOpen NoAlertOpen ScriptTimeoutInvalidElementCoordinatesIMENotAvailableIMEEngineActivationFailedInvalidSelectorSessionNotCreatedMoveTargetOutOfBoundsInvalidXPathSelectorInvalidXPathSelectorReturnType FailedCommand ServerErrorUnknownCommand HTTPConnErrorHTTPStatusUnknown InvalidURLmkFailedCommandInfo failedCommandWebDriverConfigmkCaps mkSessionWDConfigwdHostwdPortwdCapabilities wdBasePathwdRequestHeaders wdAuthHeaderswdHistoryConfig wdHTTPManagerwdHTTPRetryCount defaultConfigApplicationCacheStatusUncachedIdleChecking Downloading UpdateReadyObsoleteLogTypeLogEntrylogTimelogLevellogMsgWebStorageType LocalStorageSessionStorage MouseButton LeftButton MiddleButton RightButton Orientation LandscapePortraitSelectorByIdByNameByClassByTag ByLinkTextByPartialLinkTextByCSSByXPathCookiecookName cookValuecookPath cookDomain cookSecure cookExpiry FrameSelector WithIndexWithName WithElement DefaultFrameJSArgsessions getActualCaps 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 finallyClosecloseOnExceptiongetSessionHistorydumpSessionHistory ExpectFailed unexpectedexpect expectAny expectAllexpectNotStaleexpectAlertOpencatchFailedCommand waitUntil waitUntil' waitWhile waitWhile' onTimeout $fToPrefFixed $fToPrefRatio $fToPrefFloat$fToPrefDouble$fToPrefWord64$fToPrefWord32$fToPrefWord16 $fToPrefWord8 $fToPrefWord $fToPrefInt64 $fToPrefInt32 $fToPrefInt16 $fToPrefInt8 $fToPrefInt$fToPrefInteger $fToPrefBool $fToPref[] $fToPrefText$fExceptionProfileParseError$fFromJSONProfilePref$fToJSONProfilePref$fToJSONPreparedProfile$fFromJSONPreparedProfile prefsParsermkTempaeson_ETPkjsw4IpzE7DmwxmI0JOData.Aeson.Types.Internalobjectbytes_6elQVSg5cWdFrvRnfxTUrHData.ByteString.Lazy.Internal ByteStringValueData.Aeson.Types.ClassFromJSONData.Aeson.Types.Instances.:.:?NullbaseGHC.BaseMaybeObject$fFromJSONNoReturn$fExceptionBadJSONdatad_CgDdtafiXY68XlqDb5IqXwData.Default.ClassDefaulttext_1l1AN4I48k37RaQ6fm6CEhData.Text.InternalTextNothingghc-prim GHC.TypesBoolJustTruemonad_3XCDr1mqlERGZgaxuwJF6bControl.Monad.Trans.ControlMonadBaseControlIOtrans_88TAFm21vtn2NrYUppy50cControl.Monad.Base MonadBasehttpc_1Goxd6umddEAB8ercviXZKNetwork.HTTP.Client.TypesManagerNetwork.HTTP.Types.HeaderRequestHeaders$fWDSessionStateRWST$fWDSessionStateRWST0$fWDSessionStateErrorT$fWDSessionStateReaderT$fWDSessionStateWriterT$fWDSessionStateWriterT0$fWDSessionStateListT$fWDSessionStateIdentityT$fWDSessionStateMaybeT$fWDSessionStateStateT$fWDSessionStateStateT0$fWebDriverRWST$fWebDriverRWST0$fWebDriverErrorT$fWebDriverReaderT$fWebDriverWriterT$fWebDriverWriterT0$fWebDriverListT$fWebDriverIdentityT$fWebDriverMaybeT$fWebDriverStateT$fWebDriverStateT0$fExceptionNoSessionId$fDefaultWindowHandle$fToJSONElement$fFromJSONElement$fShowFailedCommandInfo$fFromJSONStackFrame$fFromJSONFailedCommandInfo$fShowStackFrame$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionInvalidURL WDResponse mkRequestRequestsendHTTPRequest getJSONResult rspSessId rspStatusrspVal fromStrictretryOnTimeouthandleRespSessionId handleJSONErr$fFromJSONWDResponsedef$fWebDriverConfigWDConfig$fDefaultWDConfig$fSetCapabilitiesWDConfig$fGetCapabilitiesWDConfigToJSONnoReturn ignoreReturndoStorageCommand $fFromJSONApplicationCacheStatus$fFromJSONLogEntry$fFromJSONMouseButton$fToJSONMouseButton$fFromJSONOrientation$fToJSONOrientation$fToJSONSelector$fFromJSONCookie$fToJSONFrameSelector $fToJSONJSArg$fToJSONCookie $fWebDriverWD$fWDSessionStateWD$fMonadBaseControlIOWD$fMonadBaseIOWD waitEitherwait'$fExceptionExpectFailed