| Copyright | (c) 2026 Institute for Digital Autonomy |
|---|---|
| License | EUPL-1.2 |
| Maintainer | IDA |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Effectful.Marionette
Contents
Description
Marionette is Firefox's built-in remote-control protocol. It plays the same role as a WebDriver server, letting a test suite drive a real Firefox instance to navigate, find and interact with elements, execute scripts, and so on. In addition to WebDriver functionality, Marionette can also address Firefox's own chrome (its menus and toolbars) rather than just the content of a web page, and speaks its own lightweight length-prefixed JSON protocol directly over a TCP socket instead of HTTP.
This module lifts every command from the
marionette library into
the Eff monad as a Marionette effect. Run runMarionette to open the
connection and discharge that effect for the duration of your action.
How to use Marionette
Starting Firefox and a session
Launch Firefox with the --marionette flag so that it listens for
connections on port 2828.
Use runMarionette to connect to it and run a client program.
Start a new session with newSession, and quit the session with deleteSession:
import Effectful
import Effectful.Marionette
import Effectful.Process.Typed
import System.Process.Typed (proc)
main :: IO ()
main =
runEff . runTypedProcess $
withProcessTerm_ (proc "firefox" ["--marionette", "--headless"]) \_process ->
runMarionette $ do
newSession
quitFinding and interacting with elements
Find elements by calling findElement with a Selector,
then pass the resulting Element to other commands:
submitForm :: (HasCallStack, Marionette :> es) => Eff es () submitForm = do input <- findElement (ById "text-input") elementSendKeys input "hello, world" submit <- findElement (ByCSS "button[type=submit]") elementClick submit
Error handling
Catch command failures with catchError,
for example to retry a command against a fallback element:
import Control.Monad.Error.Class (catchError)
clickFirstAvailable :: (HasCallStack, Marionette :> es) => Eff es ()
clickFirstAvailable =
(elementClick =<< findElement (ById "primary-button"))
`catchError` \_ -> elementClick =<< findElement (ById "fallback-button")Synopsis
- print :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- data Marionette (a :: Type -> Type) b
- Marionette :: TQueue CommandWithCallback %1 -> StaticRep Marionette
- acceptAlert :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- acceptConnections :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Bool -> Eff es ()
- addCookie :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Cookie -> Eff es ()
- addCredential :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Credential -> Eff es ()
- addVirtualAuthenticator :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => VirtualAuthenticator -> Eff es AuthenticatorId
- back :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- closeChromeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- closeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- deleteAllCookies :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- deleteCookie :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es ()
- deleteSession :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- dismissAlert :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- elementClear :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es ()
- elementClick :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es ()
- elementSendKeys :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es ()
- executeAsyncScript :: forall (es :: [Effect]) f a. (HasCallStack, Marionette :> es, Foldable f, FromJSON a) => Text -> f Value -> Eff es (Maybe a)
- executeScript :: forall (es :: [Effect]) f a. (HasCallStack, Marionette :> es, Foldable f, FromJSON a) => Text -> f Value -> Eff es a
- findElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Selector -> Eff es Element
- findElementFrom :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Selector -> Eff es Element
- findElementFromShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Shadow -> Selector -> Eff es Element
- findElements :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Selector -> Eff es [Element]
- findElementsFrom :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Selector -> Eff es [Element]
- findElementsFromShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Shadow -> Selector -> Eff es [Element]
- forward :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- fullscreenWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- getAccessibilityPropertiesForAccessibilityNode :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es AccessibilityProperties
- getAccessibilityPropertiesForElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es AccessibilityProperties
- getActiveElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Element
- getAlertText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text
- getComputedLabel :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text
- getComputedRole :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text
- getContext :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Context
- getCookies :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es [Cookie]
- getCredentials :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es [Credential]
- getCurrentURL :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text
- getElementAttribute :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Element -> Eff es (Maybe Text)
- getElementCSSValue :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es (Maybe Text)
- getElementProperty :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es (Maybe Text)
- getElementRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Rect
- getElementTagName :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text
- getElementText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text
- getPageSource :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text
- getScreenOrientation :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Orientation
- getShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Shadow
- getTimeouts :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Timeouts
- getTitle :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text
- getWindowHandle :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es WindowHandle
- getWindowHandles :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es [WindowHandle]
- getWindowRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Rect
- getWindowType :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text
- isElementDisplayed :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool
- isElementEnabled :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool
- isElementSelected :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool
- maximizeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- minimizeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- navigate :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es ()
- newSession :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- newTab :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es NewWindowResult
- newWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es NewWindowResult
- performActions :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- quit :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- refresh :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- registerChromeHandler :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> [RegistryEntry] -> Eff es Text
- releaseActions :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- removeAllCredentials :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es ()
- removeCredential :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> CredentialId -> Eff es ()
- removeVirtualAuthenticator :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es ()
- sendAlertText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es ()
- setContext :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Context -> Eff es ()
- setPermission :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- setScreenOrientation :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Orientation -> Eff es ()
- setTimeouts :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Timeouts -> Eff es ()
- setUserVerified :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Bool -> Eff es ()
- setWindowRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Rect -> Eff es ()
- switchToFrame :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Frame -> Eff es ()
- switchToParentFrame :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ()
- switchToWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => WindowHandle -> Eff es ()
- takeScreenshot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ByteString
- unregisterChromeHandler :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es ()
- runMarionette :: forall (es :: [Effect]) a. IOE :> es => Eff (Marionette ': es) a -> Eff es a
- m :: forall (es' :: [Effect]) a. (HasCallStack, Marionette :> es') => Eff '[Concurrent, Reader (TQueue CommandWithCallback), Error Error, IOE] a -> Eff es' a
- data AccessibilityProperties = AccessibilityProperties {}
- newtype AuthenticatorId = AuthenticatorId Text
- data Context
- data Cookie = Cookie {}
- data Credential = Credential {}
- newtype CredentialId = CredentialId Text
- newtype Element = Element {}
- data Frame
- data NewWindowResult = NewWindowResult {}
- data Orientation
- data Rect = Rect {}
- data RegistryEntry = RegistryEntry {}
- data Selector
- newtype Shadow = Shadow {}
- data Timeouts = Timeouts {}
- data VirtualAuthenticator = VirtualAuthenticator {
- protocol :: Text
- transport :: Text
- hasResidentKey :: Bool
- hasUserVerification :: Bool
- isUserConsenting :: Bool
- isUserVerified :: Bool
- extensions :: Maybe [Text]
- uvm :: Maybe Bool
- newtype WindowHandle = WindowHandle Text
Documentation
print :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted print.
data Marionette (a :: Type -> Type) b Source #
Instances
| type DispatchOf Marionette Source # | |
Defined in Effectful.Marionette | |
| newtype StaticRep Marionette Source # | |
Defined in Effectful.Marionette | |
acceptAlert :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted acceptAlert.
acceptConnections :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Bool -> Eff es () Source #
Lifted acceptConnections.
addCookie :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Cookie -> Eff es () Source #
Lifted addCookie.
addCredential :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Credential -> Eff es () Source #
Lifted addCredential.
addVirtualAuthenticator :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => VirtualAuthenticator -> Eff es AuthenticatorId Source #
Lifted addVirtualAuthenticator.
back :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted back.
closeChromeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted closeChromeWindow.
closeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted closeWindow.
deleteAllCookies :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted deleteAllCookies.
deleteCookie :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es () Source #
Lifted deleteCookie.
deleteSession :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted deleteSession.
dismissAlert :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted dismissAlert.
elementClear :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es () Source #
Lifted elementClear.
elementClick :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es () Source #
Lifted elementClick.
elementSendKeys :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es () Source #
Lifted elementSendKeys.
executeAsyncScript :: forall (es :: [Effect]) f a. (HasCallStack, Marionette :> es, Foldable f, FromJSON a) => Text -> f Value -> Eff es (Maybe a) Source #
Lifted executeAsyncScript.
executeScript :: forall (es :: [Effect]) f a. (HasCallStack, Marionette :> es, Foldable f, FromJSON a) => Text -> f Value -> Eff es a Source #
Lifted executeScript.
findElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Selector -> Eff es Element Source #
Lifted findElement.
findElementFrom :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Selector -> Eff es Element Source #
Lifted findElementFrom.
findElementFromShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Shadow -> Selector -> Eff es Element Source #
Lifted findElementFromShadowRoot.
findElements :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Selector -> Eff es [Element] Source #
Lifted findElements.
findElementsFrom :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Selector -> Eff es [Element] Source #
Lifted findElementsFrom.
findElementsFromShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Shadow -> Selector -> Eff es [Element] Source #
Lifted findElementsFromShadowRoot.
forward :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted forward.
fullscreenWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted fullscreenWindow.
getAccessibilityPropertiesForAccessibilityNode :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es AccessibilityProperties Source #
getAccessibilityPropertiesForElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es AccessibilityProperties Source #
getActiveElement :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Element Source #
Lifted getActiveElement.
getAlertText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text Source #
Lifted getAlertText.
getComputedLabel :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text Source #
Lifted getComputedLabel.
getComputedRole :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text Source #
Lifted getComputedRole.
getContext :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Context Source #
Lifted getContext.
getCookies :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es [Cookie] Source #
Lifted getCookies.
getCredentials :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es [Credential] Source #
Lifted getCredentials.
getCurrentURL :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text Source #
Lifted getCurrentURL.
getElementAttribute :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Element -> Eff es (Maybe Text) Source #
Lifted getElementAttribute.
getElementCSSValue :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es (Maybe Text) Source #
Lifted getElementCSSValue.
getElementProperty :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Text -> Eff es (Maybe Text) Source #
Lifted getElementProperty.
getElementRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Rect Source #
Lifted getElementRect.
getElementTagName :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text Source #
Lifted getElementTagName.
getElementText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Text Source #
Lifted getElementText.
getPageSource :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text Source #
Lifted getPageSource.
getScreenOrientation :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Orientation Source #
Lifted getScreenOrientation.
getShadowRoot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Shadow Source #
Lifted getShadowRoot.
getTimeouts :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Timeouts Source #
Lifted getTimeouts.
getTitle :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text Source #
Lifted getTitle.
getWindowHandle :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es WindowHandle Source #
Lifted getWindowHandle.
getWindowHandles :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es [WindowHandle] Source #
Lifted getWindowHandles.
getWindowRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Rect Source #
Lifted getWindowRect.
getWindowType :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es Text Source #
Lifted getWindowType.
isElementDisplayed :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool Source #
Lifted isElementDisplayed.
isElementEnabled :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool Source #
Lifted isElementEnabled.
isElementSelected :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Element -> Eff es Bool Source #
Lifted isElementSelected.
maximizeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted maximizeWindow.
minimizeWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted minimizeWindow.
navigate :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es () Source #
Lifted navigate.
newSession :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted newSession.
newTab :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es NewWindowResult Source #
Lifted newTab.
newWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es NewWindowResult Source #
Lifted newWindow.
performActions :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted performActions.
quit :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted quit.
refresh :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted refresh.
registerChromeHandler :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> [RegistryEntry] -> Eff es Text Source #
Lifted registerChromeHandler.
releaseActions :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted releaseActions.
removeAllCredentials :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es () Source #
Lifted removeAllCredentials.
removeCredential :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> CredentialId -> Eff es () Source #
Lifted removeCredential.
removeVirtualAuthenticator :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Eff es () Source #
Lifted removeVirtualAuthenticator.
sendAlertText :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es () Source #
Lifted sendAlertText.
setContext :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Context -> Eff es () Source #
Lifted setContext.
setPermission :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted setPermission.
setScreenOrientation :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Orientation -> Eff es () Source #
Lifted setScreenOrientation.
setTimeouts :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Timeouts -> Eff es () Source #
Lifted setTimeouts.
setUserVerified :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => AuthenticatorId -> Bool -> Eff es () Source #
Lifted setUserVerified.
setWindowRect :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Rect -> Eff es () Source #
Lifted setWindowRect.
switchToFrame :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Frame -> Eff es () Source #
Lifted switchToFrame.
switchToParentFrame :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es () Source #
Lifted switchToParentFrame.
switchToWindow :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => WindowHandle -> Eff es () Source #
Lifted switchToWindow.
takeScreenshot :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Eff es ByteString Source #
Lifted takeScreenshot.
unregisterChromeHandler :: forall (es :: [Effect]). (HasCallStack, Marionette :> es) => Text -> Eff es () Source #
Lifted unregisterChromeHandler.
runMarionette :: forall (es :: [Effect]) a. IOE :> es => Eff (Marionette ': es) a -> Eff es a Source #
Connects to a running Firefox instance listening for Marionette
connections (started with the --marionette command-line flag), and
discharges the Marionette effect for the supplied action.
m :: forall (es' :: [Effect]) a. (HasCallStack, Marionette :> es') => Eff '[Concurrent, Reader (TQueue CommandWithCallback), Error Error, IOE] a -> Eff es' a Source #
data AccessibilityProperties #
Constructors
| AccessibilityProperties | |
Instances
newtype AuthenticatorId #
Constructors
| AuthenticatorId Text |
Instances
| FromJSON AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn Methods parseJSON :: Value -> Parser AuthenticatorId # parseJSONList :: Value -> Parser [AuthenticatorId] # | |||||
| ToJSON AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn Methods toJSON :: AuthenticatorId -> Value # toEncoding :: AuthenticatorId -> Encoding # toJSONList :: [AuthenticatorId] -> Value # toEncodingList :: [AuthenticatorId] -> Encoding # omitField :: AuthenticatorId -> Bool # | |||||
| Generic AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn Associated Types
Methods from :: AuthenticatorId -> Rep AuthenticatorId x # to :: Rep AuthenticatorId x -> AuthenticatorId # | |||||
| Show AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn Methods showsPrec :: Int -> AuthenticatorId -> ShowS # show :: AuthenticatorId -> String # showList :: [AuthenticatorId] -> ShowS # | |||||
| Eq AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn Methods (==) :: AuthenticatorId -> AuthenticatorId -> Bool # (/=) :: AuthenticatorId -> AuthenticatorId -> Bool # | |||||
| type Rep AuthenticatorId | |||||
Defined in Test.Marionette.WebAuthn type Rep AuthenticatorId = D1 ('MetaData "AuthenticatorId" "Test.Marionette.WebAuthn" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'True) (C1 ('MetaCons "AuthenticatorId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
The browsing context for script execution.
Constructors
| ContentContext | |
| ChromeContext |
Instances
| FromJSON Context | |
Defined in Test.Marionette.Context | |
| ToJSON Context | |
| Bounded Context | |
| Enum Context | |
| Generic Context | |
Defined in Test.Marionette.Context | |
| Show Context | |
| Eq Context | |
| type Rep Context | |
Constructors
| Cookie | |
Instances
| FromJSON Cookie | |||||
Defined in Test.Marionette.Cookie | |||||
| ToJSON Cookie | |||||
| Generic Cookie | |||||
Defined in Test.Marionette.Cookie Associated Types
| |||||
| Show Cookie | |||||
| Eq Cookie | |||||
| type Rep Cookie | |||||
Defined in Test.Marionette.Cookie type Rep Cookie = D1 ('MetaData "Cookie" "Test.Marionette.Cookie" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "Cookie" 'PrefixI 'True) ((S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "path") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)))) :*: ((S1 ('MetaSel ('Just "domain") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "secure") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "httpOnly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "expiry") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)))))) | |||||
data Credential #
Constructors
| Credential | |
Fields
| |
Instances
| FromJSON Credential | |||||
Defined in Test.Marionette.WebAuthn | |||||
| ToJSON Credential | |||||
Defined in Test.Marionette.WebAuthn Methods toJSON :: Credential -> Value # toEncoding :: Credential -> Encoding # toJSONList :: [Credential] -> Value # toEncodingList :: [Credential] -> Encoding # omitField :: Credential -> Bool # | |||||
| Generic Credential | |||||
Defined in Test.Marionette.WebAuthn Associated Types
| |||||
| Show Credential | |||||
Defined in Test.Marionette.WebAuthn Methods showsPrec :: Int -> Credential -> ShowS # show :: Credential -> String # showList :: [Credential] -> ShowS # | |||||
| Eq Credential | |||||
Defined in Test.Marionette.WebAuthn | |||||
| type Rep Credential | |||||
Defined in Test.Marionette.WebAuthn type Rep Credential = D1 ('MetaData "Credential" "Test.Marionette.WebAuthn" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "Credential" 'PrefixI 'True) ((S1 ('MetaSel ('Just "credentialId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CredentialId) :*: (S1 ('MetaSel ('Just "isResidentCredential") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "rpId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) :*: (S1 ('MetaSel ('Just "privateKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "userHandle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "signCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) | |||||
newtype CredentialId #
Constructors
| CredentialId Text |
Instances
| FromJSON CredentialId | |||||
Defined in Test.Marionette.WebAuthn | |||||
| ToJSON CredentialId | |||||
Defined in Test.Marionette.WebAuthn Methods toJSON :: CredentialId -> Value # toEncoding :: CredentialId -> Encoding # toJSONList :: [CredentialId] -> Value # toEncodingList :: [CredentialId] -> Encoding # omitField :: CredentialId -> Bool # | |||||
| Generic CredentialId | |||||
Defined in Test.Marionette.WebAuthn Associated Types
| |||||
| Show CredentialId | |||||
Defined in Test.Marionette.WebAuthn Methods showsPrec :: Int -> CredentialId -> ShowS # show :: CredentialId -> String # showList :: [CredentialId] -> ShowS # | |||||
| Eq CredentialId | |||||
Defined in Test.Marionette.WebAuthn | |||||
| type Rep CredentialId | |||||
Defined in Test.Marionette.WebAuthn type Rep CredentialId = D1 ('MetaData "CredentialId" "Test.Marionette.WebAuthn" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'True) (C1 ('MetaCons "CredentialId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||
An opaque identifier for a web page element.
Constructors
| FrameIndex Int | |
| FrameElement Element | |
| TopFrame |
Instances
| FromJSON Frame | |||||
Defined in Test.Marionette.Frame | |||||
| ToJSON Frame | |||||
| Generic Frame | |||||
Defined in Test.Marionette.Frame Associated Types
| |||||
| Show Frame | |||||
| Eq Frame | |||||
| Hashable Frame | |||||
Defined in Test.Marionette.Frame | |||||
| type Rep Frame | |||||
Defined in Test.Marionette.Frame type Rep Frame = D1 ('MetaData "Frame" "Test.Marionette.Frame" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "FrameIndex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: (C1 ('MetaCons "FrameElement" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Element)) :+: C1 ('MetaCons "TopFrame" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
data NewWindowResult #
Constructors
| NewWindowResult | |
Fields | |
Instances
| FromJSON NewWindowResult | |||||
Defined in Test.Marionette.Window Methods parseJSON :: Value -> Parser NewWindowResult # parseJSONList :: Value -> Parser [NewWindowResult] # | |||||
| Generic NewWindowResult | |||||
Defined in Test.Marionette.Window Associated Types
Methods from :: NewWindowResult -> Rep NewWindowResult x # to :: Rep NewWindowResult x -> NewWindowResult # | |||||
| Show NewWindowResult | |||||
Defined in Test.Marionette.Window Methods showsPrec :: Int -> NewWindowResult -> ShowS # show :: NewWindowResult -> String # showList :: [NewWindowResult] -> ShowS # | |||||
| Eq NewWindowResult | |||||
Defined in Test.Marionette.Window Methods (==) :: NewWindowResult -> NewWindowResult -> Bool # (/=) :: NewWindowResult -> NewWindowResult -> Bool # | |||||
| type Rep NewWindowResult | |||||
Defined in Test.Marionette.Window type Rep NewWindowResult = D1 ('MetaData "NewWindowResult" "Test.Marionette.Window" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "NewWindowResult" 'PrefixI 'True) (S1 ('MetaSel ('Just "newWindowHandle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WindowHandle) :*: S1 ('MetaSel ('Just "newWindowType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WindowType))) | |||||
data Orientation #
Instances
| FromJSON Orientation | |||||
Defined in Test.Marionette.Orientation | |||||
| ToJSON Orientation | |||||
Defined in Test.Marionette.Orientation Methods toJSON :: Orientation -> Value # toEncoding :: Orientation -> Encoding # toJSONList :: [Orientation] -> Value # toEncodingList :: [Orientation] -> Encoding # omitField :: Orientation -> Bool # | |||||
| Generic Orientation | |||||
Defined in Test.Marionette.Orientation Associated Types
| |||||
| Show Orientation | |||||
Defined in Test.Marionette.Orientation Methods showsPrec :: Int -> Orientation -> ShowS # show :: Orientation -> String # showList :: [Orientation] -> ShowS # | |||||
| Eq Orientation | |||||
Defined in Test.Marionette.Orientation | |||||
| type Rep Orientation | |||||
Defined in Test.Marionette.Orientation | |||||
Instances
| FromJSON Rect | |||||
Defined in Test.Marionette.Rect | |||||
| ToJSON Rect | |||||
| Generic Rect | |||||
Defined in Test.Marionette.Rect Associated Types
| |||||
| Show Rect | |||||
| Eq Rect | |||||
| type Rep Rect | |||||
Defined in Test.Marionette.Rect type Rep Rect = D1 ('MetaData "Rect" "Test.Marionette.Rect" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "Rect" 'PrefixI 'True) ((S1 ('MetaSel ('Just "x") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float) :*: S1 ('MetaSel ('Just "y") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float)) :*: (S1 ('MetaSel ('Just "width") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float) :*: S1 ('MetaSel ('Just "height") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Float)))) | |||||
data RegistryEntry #
Constructors
| RegistryEntry | |
Instances
| ToJSON RegistryEntry | |||||
Defined in Test.Marionette.Registry Methods toJSON :: RegistryEntry -> Value # toEncoding :: RegistryEntry -> Encoding # toJSONList :: [RegistryEntry] -> Value # toEncodingList :: [RegistryEntry] -> Encoding # omitField :: RegistryEntry -> Bool # | |||||
| Generic RegistryEntry | |||||
Defined in Test.Marionette.Registry Associated Types
| |||||
| Show RegistryEntry | |||||
Defined in Test.Marionette.Registry Methods showsPrec :: Int -> RegistryEntry -> ShowS # show :: RegistryEntry -> String # showList :: [RegistryEntry] -> ShowS # | |||||
| Eq RegistryEntry | |||||
Defined in Test.Marionette.Registry Methods (==) :: RegistryEntry -> RegistryEntry -> Bool # (/=) :: RegistryEntry -> RegistryEntry -> Bool # | |||||
| type Rep RegistryEntry | |||||
Defined in Test.Marionette.Registry type Rep RegistryEntry = D1 ('MetaData "RegistryEntry" "Test.Marionette.Registry" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "RegistryEntry" 'PrefixI 'True) ((S1 ('MetaSel ('Just "entryType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "namespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "directory") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "options") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))) | |||||
Specifies element(s) within a DOM tree using various selection methods.
Constructors
| ById Text | |
| ByName Text | |
| ByClass Text | (Note: multiple classes are not allowed. For more control, use |
| ByTag Text | |
| ByLinkText Text | |
| ByPartialLinkText Text | |
| ByCSS Text | |
| ByXPath Text | |
| Anon Text | |
| AnonAttribute Text |
Instances
| ToJSON Selector | |||||
| Generic Selector | |||||
Defined in Test.Marionette.Selector Associated Types
| |||||
| Show Selector | |||||
| Eq Selector | |||||
| Hashable Selector | |||||
Defined in Test.Marionette.Selector | |||||
| type Rep Selector | |||||
Defined in Test.Marionette.Selector type Rep Selector = D1 ('MetaData "Selector" "Test.Marionette.Selector" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (((C1 ('MetaCons "ById" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "ByName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) :+: (C1 ('MetaCons "ByClass" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: (C1 ('MetaCons "ByTag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "ByLinkText" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))))) :+: ((C1 ('MetaCons "ByPartialLinkText" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "ByCSS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) :+: (C1 ('MetaCons "ByXPath" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: (C1 ('MetaCons "Anon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "AnonAttribute" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))))) | |||||
An opaque identifier for a web page element that identifies a shadow root.
Instances
| FromJSON Timeouts | |||||
Defined in Test.Marionette.Timeouts | |||||
| ToJSON Timeouts | |||||
| Generic Timeouts | |||||
Defined in Test.Marionette.Timeouts Associated Types
| |||||
| Show Timeouts | |||||
| Eq Timeouts | |||||
| type Rep Timeouts | |||||
Defined in Test.Marionette.Timeouts type Rep Timeouts = D1 ('MetaData "Timeouts" "Test.Marionette.Timeouts" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "Timeouts" 'PrefixI 'True) (S1 ('MetaSel ('Just "script") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "pageLoad") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "implicit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))))) | |||||
data VirtualAuthenticator #
Constructors
| VirtualAuthenticator | |
Fields
| |
Instances
| ToJSON VirtualAuthenticator | |||||
Defined in Test.Marionette.WebAuthn Methods toJSON :: VirtualAuthenticator -> Value # toEncoding :: VirtualAuthenticator -> Encoding # toJSONList :: [VirtualAuthenticator] -> Value # toEncodingList :: [VirtualAuthenticator] -> Encoding # omitField :: VirtualAuthenticator -> Bool # | |||||
| Generic VirtualAuthenticator | |||||
Defined in Test.Marionette.WebAuthn Associated Types
Methods from :: VirtualAuthenticator -> Rep VirtualAuthenticator x # to :: Rep VirtualAuthenticator x -> VirtualAuthenticator # | |||||
| Show VirtualAuthenticator | |||||
Defined in Test.Marionette.WebAuthn Methods showsPrec :: Int -> VirtualAuthenticator -> ShowS # show :: VirtualAuthenticator -> String # showList :: [VirtualAuthenticator] -> ShowS # | |||||
| Eq VirtualAuthenticator | |||||
Defined in Test.Marionette.WebAuthn Methods (==) :: VirtualAuthenticator -> VirtualAuthenticator -> Bool # (/=) :: VirtualAuthenticator -> VirtualAuthenticator -> Bool # | |||||
| type Rep VirtualAuthenticator | |||||
Defined in Test.Marionette.WebAuthn type Rep VirtualAuthenticator = D1 ('MetaData "VirtualAuthenticator" "Test.Marionette.WebAuthn" "marionette-1.0.0-2rXrb754J8I8DUtJcHv2xL" 'False) (C1 ('MetaCons "VirtualAuthenticator" 'PrefixI 'True) (((S1 ('MetaSel ('Just "protocol") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "transport") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "hasResidentKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "hasUserVerification") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "isUserConsenting") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "isUserVerified") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "extensions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [Text])) :*: S1 ('MetaSel ('Just "uvm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool)))))) | |||||
newtype WindowHandle #
Constructors
| WindowHandle Text |
Instances
| FromJSON WindowHandle | |
Defined in Test.Marionette.Window | |
| ToJSON WindowHandle | |
Defined in Test.Marionette.Window Methods toJSON :: WindowHandle -> Value # toEncoding :: WindowHandle -> Encoding # toJSONList :: [WindowHandle] -> Value # toEncodingList :: [WindowHandle] -> Encoding # omitField :: WindowHandle -> Bool # | |
| Read WindowHandle | |
Defined in Test.Marionette.Window Methods readsPrec :: Int -> ReadS WindowHandle # readList :: ReadS [WindowHandle] # | |
| Show WindowHandle | |
Defined in Test.Marionette.Window Methods showsPrec :: Int -> WindowHandle -> ShowS # show :: WindowHandle -> String # showList :: [WindowHandle] -> ShowS # | |
| Eq WindowHandle | |
Defined in Test.Marionette.Window | |
| Ord WindowHandle | |
Defined in Test.Marionette.Window Methods compare :: WindowHandle -> WindowHandle -> Ordering # (<) :: WindowHandle -> WindowHandle -> Bool # (<=) :: WindowHandle -> WindowHandle -> Bool # (>) :: WindowHandle -> WindowHandle -> Bool # (>=) :: WindowHandle -> WindowHandle -> Bool # max :: WindowHandle -> WindowHandle -> WindowHandle # min :: WindowHandle -> WindowHandle -> WindowHandle # | |
| Hashable WindowHandle | |
Defined in Test.Marionette.Window | |
Orphan instances
| Error Error :> es => MonadError Error (Eff es) Source # | |
| (Concurrent :> es, Reader (TQueue CommandWithCallback) :> es, Error Error :> es, IOE :> es) => Marionette (Eff es) Source # | |
Methods sendCommand :: (HasCallStack, FromJSON a) => Command -> Eff es a # sendCommands :: (HasCallStack, Traversable t, FromJSON a) => t Command -> Eff es (t a) # sendCommands_ :: (HasCallStack, Traversable t) => t Command -> Eff es () # sendCommand_ :: Command -> Eff es () # | |