]      !"#$%&'()*+,-./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[\]^_`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 { | } ~                                                                                                     NoneNone    None !"*0:IT 1Constraint 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 history#Locally 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.)  !"#$%&'()*+,-./0123"  !"#$%&'"  "#$%  !&'   !"#$%&'()*+,-./0123None09:;I: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.CsRepresents a profile that has been prepared for network transmission. The profile cannot be modified in this form.E#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.GA 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.HyA map of profile preferences. These are the settings found in the profile's prefs.js, and entries found in about:configI1Retrieve a preference from a profile by key name.J[Add a new preference entry to a profile, overwriting any existing entry with the same key.KmDelete an existing preference entry from a profile. This operation is silent if the preference wasn't found.LAdd 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 destinationMoDelete a file from the profile directory. The first argument is the name of file within the profile directory.NhDetermines if a profile contains the given file, specified as a path relative to the profile directory.O{Add a new extension to the profile. The file path should refer to a .xpi file or an extension directory on the filesystem.PDelete 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.QbDetermines if a profile contains the given extension. specified as an .xpi file or directory nameR<Takes the union of two profiles. This is the union of their HashMap fields.S Modifies the H field of a profile.T Modifies the G field of a profileUXEfficiently load an existing profile from disk and prepare it for network transmission.VPrepare a zip file of a profile on disk for network transmission. This function is very efficient at loading large profiles from disk.W<Prepare a zip archive of a profile for network transmission.X=Prepare a ByteString of raw zip data for network transmission7:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXEFGHCD>?@AB:;IJKOPQLMNRTSUVWX<=-:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopNone:ITz'Phantom type used in the parameters of E and C{:Default Firefox Profile, used when no profile is supplied.|QLoad an existing profile from the file system. Any prepared changes made to the E, 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 U or V 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 specifiedConvenience 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.z{|}~$:;<=>?@ABCEFGHIJKLMNOPQRSTUVWXz{|}~$zEFGHC{>?@AB:;JIKOPQLMNRTS}~|UVWX<=z{|}~Safe@@@@None!"*0:IA 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 <https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol  None0IQA 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 <https://github.com/SeleniumHQ/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 protocol    None0: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.GConvenience function to handle webdriver commands with no return value.=Convenience function to ignore result of a webdriver command.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. Due to a breaking change in the ! operator of aeson 0.10 (see  'https://github.com/bos/aeson/issues/287) that was subsequently reverted, this operator was added to provide consistent behavior compatible with all aeson versions. If the field is either missing or " , this operator should return a # result. 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. None!"*0:^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 given0:Constructs a FailedCommandInfo from only an error message.1 Convenience function to throw a $+ locally with no server-side info present.5KProvides a readable printout of the error information, useful for logging.?      !"#$%&'()*+,-./0123456789:;5      !"#$%&'()*+,-./015./,-*+()&'$%10     !"#       !"#$%&'()*+,-./0123456789:;None9      !"#$%&'()*+,-./019./,-*+()&'$%     !"# 01 None!"*:TM3Internal type representing the JSON response objectRConstructs an HTTP %J value when given a list of headers, HTTP request method, and URL fragmentS4Sends an HTTP request to the remote WebDriver serverT Parses a M# object from a given HTTP response.MNOPQ&'RS(TUVW MNQOPRSTUV RSTVUMNOPQ MNOPQ&'RS(TUVWNone:IZ^An opaque type representing a Google Chrome extension. Values of this type are passed to the  field.[Load a .crx file as a Z.\Load raw .crx data as a Z.Z)[\Z[\Z[\Z)[\None!"*Mb6Specifies how elements scroll into the viewport. (see )e$Logging levels for Internet Explorerl)Indicates a log verbosity level. Used in z and  configuration.z!Available settings for the proxy  field~-Use a proxy auto-config file specified by URLjManually 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.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..some other browser, specified by a string namehThe firefox profile to use. If Nothing, a default temporary profile is automatically created and used.Firefox logging preferenceUServer-side path to Firefox binary. If Nothing, use a sensible system-based default.4Version of the Chrome Webdriver server server to use*for more information on chromedriver see 8https://github.com/SeleniumHQ/selenium/wiki/ChromeDriverTServer-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.<Experimental options not yet exposed through a standard API.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 kNThe 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 pTA 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 p.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 6 constructor for more details on individual defaults.bcdefghijklmnopqrstuvwxyz{|}~bcdefghijklmnopqrstuvwxyz|{}~z{|}~vwxylmnopqrstuefghijkbcd1bcdefghijkl mnopqrstuvwxyz {|}~/ None !":ATp&,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 button2A screen orientation5GSpecifies element(s) within a DOM tree using various selection methods.8@(Note: multiple classes are not allowed. For more control, use <)>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.B/path of this cookie. if Nothing, defaults to /CEdomain of this cookie. if Nothing, the current pages domain is usedDIs this cookie secure?EhExpiry date expressed as seconds since the Unix epoch Nothing indicates that the cookie never expiresFSpecifies the frame used by cHfocus on a frame by name or IDIfocus on a frame JDfocus on the first frame, or the main document if iframes are used.KAn existential wrapper for any /Y instance. This allows us to pass parameters of many different types to Javascript code.M$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.N-Retrieve a list of active sessions and their .OGet the actual server-side  of the current session.P=Close the current session and the browser associated with it.QLSets the amount of time (ms) we implicitly wait when searching for elements.RTSets the amount of time (ms) we wait for an asynchronous script to return a result.STSets the amount of time (ms) to wait for a page to finish loading before throwing a  exception.T!Gets the URL of the current page.U"Opens a new page by the given URL.V(Navigate forward in the browser history.W)Navigate backward in the browser history.XRefresh the current pageYInject 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. When using Y, GHC might complain about an ambiguous type in situations where the result of the executeJS call is ignored/discard. Consider the following example: V jsExample = do e <- findElem (ById "foo") executeJS [] "someAction()" return e Because the result of the Y8 is discarded, GHC cannot resolve which instance of the 0W class to use when parsing the Selenium server response. In such cases, we can use the  helper function located in Test.WebDriver.JSON. R has no runtime effect; it simply helps the type system by expicitly providing a 0 instance to use.  import Test.WebDriver.JSON (ignoreReturn) jsExample = do e <- findElem (ById "foo") ignoreReturn $ executeJS [] "someAction()" return e ZWExecutes a snippet of Javascript code asynchronously. This function works similarly to Y1, 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 R)[*Save a screenshot to a particular location\4Grab a screenshot of the current page as a PNG image]VGrab a screenshot as a base-64 encoded PNG image. This is the protocol-defined format.c9Switch focus to the frame specified by the FrameSelector.d0Returns a handle to the currently focused windowe6Returns a list of all windows available to the sessiongCloses the given windowh6Maximizes the current window if not already maximizedi)Get the dimensions of the current window.j)Set the dimensions of the current window.k*Get the coordinates of the current window.l*Set the coordinates of the current window.mCreates a Cookie with only a name and value specified. All other fields are set to Nothing, which tells the server to use default values.n1Retrieve all cookies visible to the current page.oSet 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 domainpWDelete a cookie. This will do nothing is the cookie isn't visible to the current page.r/Delete all visible cookies on the current page.sGet the current page sourcet"Get the title of the current page.u=Find an element on the page using the given element selector.v:Find all elements on the page matching the given selector.w,Return the element that currently has focus.x6Search for an element using the given element as root.yGFind all elements matching a selector, using the given element as root.zlDescribe 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. Named constants for special modifier keys can be found in Test.WebDriver.Common.KeysSimilar 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.1A wrapper around  to create web storage requests.*Get information from the server as a JSON $/. For more information about this object see Chttps://github.com/SeleniumHQ/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. !"#$%&'()*+,-./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 ByteString1lmnopqrstu !"#$%&')(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~MPNOUVWXTst[\]QRS56789:;<=uvxy{|}~wzYZKLdgefhijklcFGHIJ>?@ABCDEmnoprq./01+,- !"#$234^_`ab%&'()*lmnopqrstu{ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~144None*0:T?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.2bInternal 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 ""3)Reason why the expected condition failed.24  324None!":6Class of types that can configure a WebDriver session. Produces a  from the given configuration. Produces a  from the given configuration.WebDriver session configurationGHost 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 session2Base 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)A default session config connects to localhost on port 4444, and hasn't been initialized server-side. This value is the same as 5# but with a less polymorphic type.  ! ! None *:<=DIR%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.          None      !"#$%&'()*+,-./01bcdefghijklmnopqrstuvwxyz|{}~ !"#$%&')(*+,-./0123456789:;<=>?@ABCDEFGHIJKLmz{|}~vwxylmnopqrstuefghijkbcd56789:;<=KLFGHIJ>?@ABCDEm234./01+,-%&'()* !"#$./,-*+()&'$%     !"# 01None`  !#&'      !"#$%&'()*+,-./01lmnopqrstuz|{}~ !"#$%&')(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~# !&'z{|}~lmnopqrstu 6  !"#$%&'()*++,-./01234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXYZZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                              ! " # $ % & ' ( ) * + , - . / 0 1 2 2 3 3 4 4 5 5 6 6 7 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U U V W X Y Z [ \ ] ^ _ `abcdefghijklmnopqrstuvwxyz{|}~      ! " # $ % & ' ( ) ) * + , - . / 0 1 2 3 4 5 6 7 8 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 d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                    !"#$%&'(#$)#*+#*,#*-#$./01#$23 4 5 6a789/0:;/0<=#>?#*@ ABC !DE&webdriver-0.8.5-37aUfuzTO4fD3ekjdJK47PTest.WebDriver.ClassTest.WebDriver.UtilsTest.WebDriver.Session.HistoryTest.WebDriver.SessionTest.WebDriver.Firefox.ProfileTest.WebDriver.Common.ProfileTest.WebDriver.Common.KeysTest.WebDriver.ExceptionsTest.WebDriver.Commands Test.WebDriver.Commands.InternalTest.WebDriver.JSON"Test.WebDriver.Exceptions.InternalTest.WebDriver.InternalTest.WebDriver.Chrome.ExtensionTest.WebDriver.CapabilitiesTest.WebDriver.Commands.WaitTest.WebDriver.ConfigTest.WebDriver.MonadTest.WebDriver createSession runSessionTest.WebdriverchromeExtensionsTest.WebDriver.Types'http-types-0.9.1-BFCRaaQNE88DRttqyvtXtzNetwork.HTTP.Types.Method methodDelete methodPost methodGetMethod urlEncodeSessionHistory histRequest histResponsehistRetryCount$fShowSessionHistoryWDSessionStateControlWDSessionStateIOWDSessionState getSession putSessionSessionHistoryConfig WDSession wdSessHost wdSessPortwdSessBasePathwdSessId wdSessHistwdSessHistUpdatewdSessHTTPManagerwdSessHTTPRetryCountwdSessRequestHeaderswdSessAuthHeaders SessionId noHistoryunlimitedHistoryonlyMostRecentHistory modifySession withSessionmostRecentHistorymostRecentHTTPRequestwithRequestHeaderswithAuthHeaders$fWDSessionStateRWST$fWDSessionStateRWST0$fWDSessionStateExceptT$fWDSessionStateErrorT$fWDSessionStateReaderT$fWDSessionStateWriterT$fWDSessionStateWriterT0$fWDSessionStateListT$fWDSessionStateIdentityT$fWDSessionStateMaybeT$fWDSessionStateStateT$fWDSessionStateStateT0 $fEqSessionId$fOrdSessionId$fShowSessionId$fReadSessionId$fFromJSONSessionId$fToJSONSessionIdToPreftoPrefProfileParseError ProfilePref PrefInteger PrefDouble PrefStringPrefBoolPreparedProfileProfile profileFiles profilePrefsgetPrefaddPref deletePrefaddFile deleteFilehasFile addExtensiondeleteExtension hasExtension unionProfilesonProfilePrefsonProfileFilesprepareLoadedProfile_prepareZippedProfileprepareZipArchive prepareRawZip$fToPrefProfilePref $fToPrefFixed $fToPrefRatio $fToPrefFloat$fToPrefDouble$fToPrefWord64$fToPrefWord32$fToPrefWord16 $fToPrefWord8 $fToPrefWord $fToPrefInt64 $fToPrefInt32 $fToPrefInt16 $fToPrefInt8 $fToPrefInt$fToPrefInteger $fToPrefBool $fToPref[] $fToPrefText$fExceptionProfileParseError$fFromJSONProfilePref$fToJSONProfilePref$fToJSONPreparedProfile$fFromJSONPreparedProfile$fEqPreparedProfile$fShowPreparedProfile$fEqProfilePref$fShowProfilePref $fEqProfile $fShowProfile$fEqProfileParseError$fShowProfileParseError$fReadProfileParseErrorFirefoxdefaultProfile loadProfileprepareProfileprepareTempProfileprepareLoadedProfileaddalt arrowDown arrowLeft arrowRightarrowUp backspace backSpacecancelclearcommandcontroldecimaldeletedividedownendenterequalsescapef1f2f3f4f5f6f7f8f9f10f11f12helphomeinsertleftleftAlt leftControl leftShiftmetamultiplynullnumpad0numpad1numpad2numpad3numpad4numpad5numpad6numpad7numpad8numpad9pageDownpageUppausereturnright semicolon separatorshiftspacesubtracttabup WebDriver doCommand$fWebDriverRWST$fWebDriverRWST0$fWebDriverExceptT$fWebDriverErrorT$fWebDriverReaderT$fWebDriverWriterT$fWebDriverWriterT0$fWebDriverListT$fWebDriverIdentityT$fWebDriverMaybeT$fWebDriverStateT$fWebDriverStateT0 NoSessionId WindowHandleElement currentWindow doSessCommand doElemCommand doWinCommand$fExceptionNoSessionId$fDefaultWindowHandle$fToJSONElement$fFromJSONElement $fEqElement $fOrdElement $fShowElement $fReadElement$fEqWindowHandle$fOrdWindowHandle$fShowWindowHandle$fReadWindowHandle$fFromJSONWindowHandle$fToJSONWindowHandle$fEqNoSessionId$fShowNoSessionIdNoReturnBadJSONnoReturn ignoreReturnsinglepairtriple parseJSON' fromJSON'!:.:?? parsePair parseTriple apResultToWDaesonResultToWD$fFromJSONNoReturn$fExceptionBadJSON $fEqBadJSON $fShowBadJSON StackFrame sfFileName sfClassName sfMethodName sfLineNumberFailedCommandInfoerrMsgerrSess errScreenerrClasserrStackFailedCommandType NoSuchElement NoSuchFrame UnknownFrameStaleElementReferenceElementNotVisibleInvalidElementState UnknownErrorElementIsNotSelectableJavascriptErrorXPathLookupErrorTimeout NoSuchWindowInvalidCookieDomainUnableToSetCookieUnexpectedAlertOpen NoAlertOpen ScriptTimeoutInvalidElementCoordinatesIMENotAvailableIMEEngineActivationFailedInvalidSelectorSessionNotCreatedMoveTargetOutOfBoundsInvalidXPathSelectorInvalidXPathSelectorReturnType FailedCommand ServerErrorUnknownCommand HTTPConnErrorHTTPStatusUnknown InvalidURLmkFailedCommandInfo failedCommand$fFromJSONStackFrame$fFromJSONFailedCommandInfo$fShowStackFrame$fShowFailedCommandInfo$fExceptionFailedCommand$fExceptionServerError$fExceptionUnknownCommand$fExceptionHTTPConnError$fExceptionHTTPStatusUnknown$fExceptionInvalidURL$fEqInvalidURL$fShowInvalidURL$fEqHTTPStatusUnknown$fShowHTTPStatusUnknown$fEqHTTPConnError$fShowHTTPConnError$fEqUnknownCommand$fShowUnknownCommand$fEqServerError$fShowServerError$fEqFailedCommandType$fOrdFailedCommandType$fEnumFailedCommandType$fBoundedFailedCommandType$fShowFailedCommandType$fEqStackFrame$fShowFailedCommand WDResponse rspSessId rspStatusrspVal mkRequestsendHTTPRequest getJSONResulthandleRespSessionId handleJSONErr$fFromJSONWDResponse$fEqWDResponse$fShowWDResponseChromeExtension loadExtensionloadRawExtension$fEqChromeExtension$fShowChromeExtension$fReadChromeExtension$fToJSONChromeExtension$fFromJSONChromeExtensionIEElementScrollBehaviorAlignTop AlignBottom IELogLevel IELogTrace IELogDebug IELogInfo IELogWarn IELogError IELogFatalLogLevelLogOff LogSevere LogWarningLogInfo LogConfigLogFineLogFiner LogFinestLogAllUnexpectedAlertBehavior AcceptAlert DismissAlert IgnoreAlert ProxyTypeNoProxyUseSystemSettings AutoDetectPACManual autoConfigUrlftpProxysslProxy httpProxyPlatformWindowsXPVistaMacLinuxUnixAnyBrowserChromeIEOpera PhantomjsHTMLUnitIPhoneIPadAndroid ffProfile ffLogPrefffBinarychromeDriverVersion chromeBinary chromeOptionschromeExperimentalOptionsieIgnoreProtectedModeSettingsieIgnoreZoomSettingieInitialBrowserUrlieElementScrollBehaviorieEnablePersistentHoverieEnableElementCacheCleanupieRequireWindowFocusieBrowserAttachTimeout ieLogFile ieLogLevelieHost ieExtractPathieSilentieForceCreateProcess ieSwitches operaBinary operaProduct operaDetachoperaAutoStart operaIdle operaDisplay operaLauncher operaPort operaHost operaOptions operaLogFile operaLogPrefphantomjsBinaryphantomjsOptions CapabilitiesbrowserversionplatformproxyjavascriptEnabledtakesScreenshot handlesAlertsdatabaseEnabledlocationContextEnabledapplicationCacheEnabledbrowserConnectionEnabledcssSelectorsEnabledwebStorageEnabled rotatableacceptSSLCerts nativeEventsunexpectedAlertBehavioradditionalCapsHasCapabilitiesSetCapabilitiessetCapsGetCapabilitiesgetCaps modifyCaps useBrowser useVersion usePlatformuseProxy defaultCapsallCapsfirefoxchromeieopera phantomjshtmlUnitiPhoneiPadandroid!$fFromJSONIEElementScrollBehavior$fToJSONIEElementScrollBehavior $fDefaultIEElementScrollBehavior$fFromJSONIELogLevel$fToJSONIELogLevel$fDefaultIELogLevel$fFromJSONLogLevel$fToJSONLogLevel$fDefaultLogLevel!$fFromJSONUnexpectedAlertBehavior$fToJSONUnexpectedAlertBehavior$fToJSONProxyType$fFromJSONProxyType$fFromJSONPlatform$fToJSONPlatform$fFromJSONBrowser$fToJSONBrowser$fDefaultBrowser$fFromJSONCapabilities$fToJSONCapabilities$fDefaultCapabilities$fGetCapabilitiesCapabilities $fEqPlatform$fShowPlatform $fOrdPlatform$fBoundedPlatform$fEnumPlatform $fEqProxyType$fShowProxyType $fBoundedUnexpectedAlertBehavior$fEnumUnexpectedAlertBehavior$fEqUnexpectedAlertBehavior$fOrdUnexpectedAlertBehavior$fReadUnexpectedAlertBehavior$fShowUnexpectedAlertBehavior $fEqLogLevel$fShowLogLevel$fReadLogLevel $fOrdLogLevel$fBoundedLogLevel$fEnumLogLevel$fEqIELogLevel$fShowIELogLevel$fReadIELogLevel$fOrdIELogLevel$fBoundedIELogLevel$fEnumIELogLevel$fEqIEElementScrollBehavior$fOrdIEElementScrollBehavior$fShowIEElementScrollBehavior$fReadIEElementScrollBehavior$fEnumIEElementScrollBehavior $fBoundedIEElementScrollBehavior $fEqBrowser $fShowBrowser$fEqCapabilities$fShowCapabilitiesApplicationCacheStatusUncachedIdleChecking Downloading UpdateReadyObsoleteLogTypeLogEntrylogTimelogLevellogMsgWebStorageType LocalStorageSessionStorage MouseButton LeftButton MiddleButton RightButton Orientation LandscapePortraitSelectorByIdByNameByClassByTag ByLinkTextByPartialLinkTextByCSSByXPathCookiecookName cookValuecookPath cookDomain cookSecure cookExpiry FrameSelector WithIndexWithName WithElement DefaultFrameJSArgsessions getActualCaps closeSessionsetImplicitWaitsetScriptTimeoutsetPageLoadTimeout getCurrentURLopenPageforwardbackrefresh executeJSasyncJSsaveScreenshot 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 getLogTypesgetApplicationCacheStatus $fFromJSONApplicationCacheStatus$fFromJSONLogEntry$fFromJSONMouseButton$fToJSONMouseButton$fFromJSONOrientation$fToJSONOrientation$fToJSONSelector$fFromJSONCookie$fToJSONFrameSelector $fToJSONJSArg$fEqFrameSelector$fShowFrameSelector$fReadFrameSelector $fEqCookie $fShowCookie $fEqSelector$fShowSelector $fOrdSelector$fEqOrientation$fShowOrientation$fOrdOrientation$fBoundedOrientation$fEnumOrientation$fEqMouseButton$fShowMouseButton$fOrdMouseButton$fBoundedMouseButton$fEnumMouseButton$fEqWebStorageType$fShowWebStorageType$fOrdWebStorageType$fBoundedWebStorageType$fEnumWebStorageType $fEqLogEntry $fOrdLogEntry$fShowLogEntry$fReadLogEntry$fEqApplicationCacheStatus$fEnumApplicationCacheStatus$fBoundedApplicationCacheStatus$fOrdApplicationCacheStatus$fShowApplicationCacheStatus$fReadApplicationCacheStatus$fToJSONCookie ExpectFailed unexpectedexpect expectAny expectAllexpectNotStaleexpectAlertOpencatchFailedCommand waitUntil waitUntil' waitWhile waitWhile' onTimeout$fExceptionExpectFailed$fShowExpectFailed$fEqExpectFailedWebDriverConfigmkCaps mkSessionWDConfigwdHostwdPortwdCapabilities wdBasePathwdRequestHeaders wdAuthHeaderswdHistoryConfig wdHTTPManagerwdHTTPRetryCount defaultConfig$fWebDriverConfigWDConfig$fDefaultWDConfig$fSetCapabilitiesWDConfig$fGetCapabilitiesWDConfigWDrunWD finallyClosecloseOnExceptiongetSessionHistorydumpSessionHistory $fWebDriverWD$fWDSessionStateWD$fMonadBaseControlIOWD$fMonadBaseIOWD $fFunctorWD$fApplicativeWD $fMonadWD $fMonadIOWD$fMonadThrowWD$fMonadCatchWD $fMonadFixWD,monad-control-1.0.1.0-1xoC3YihUKYHLar1SsWtYeControl.Monad.Trans.ControlMonadBaseControlghc-prim GHC.TypesIO.transformers-base-0.4.4-FMTbgPqmqMsCiOz3biyAGxControl.Monad.Base MonadBase*http-client-0.5.6.1-IktGbVskunsLmiEIjZFcLLNetwork.HTTP.Client.TypesManagerNetwork.HTTP.Types.HeaderRequestHeaders prefsParsermkTemp1data-default-class-0.1.2.0-FYQpjIylblBDctdkHAFeXAData.Default.ClassDefault$aeson-1.2.0.0-EbPrqFF8uEn6JTr1dCEeDTData.Aeson.Types.Internalobjectbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringValueData.Aeson.Types.FromJSONFromJSON.:.:?NullbaseGHC.BaseNothingObjectRequest fromStrictdefaultRequestretryOnTimeout#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalTextMaybeBoolJustTrueData.Aeson.Types.ToJSONToJSONfromJSONdoStorageCommand waitEitherwait'def