module Test.WebDriver.Commands.ElementInteraction (
click
, clearInput
, sendKeys
) where
import Data.Text (Text)
import GHC.Stack
import Test.WebDriver.JSON (noObject, noReturn, single)
import Test.WebDriver.Types
import Test.WebDriver.Util.Commands
click :: (HasCallStack, WebDriver wd) => Element -> wd ()
click :: forall (wd :: * -> *).
(HasCallStack, WebDriver wd) =>
Element -> wd ()
click Element
e = wd NoReturn -> wd ()
forall (m :: * -> *). WebDriver m => m NoReturn -> m ()
noReturn (wd NoReturn -> wd ()) -> wd NoReturn -> wd ()
forall a b. (a -> b) -> a -> b
$ Method -> Element -> Text -> Value -> wd NoReturn
forall (wd :: * -> *) a b.
(HasCallStack, WebDriver wd, ToJSON a, FromJSON b) =>
Method -> Element -> Text -> a -> wd b
doElemCommand Method
methodPost Element
e Text
"/click" Value
noObject
clearInput :: (HasCallStack, WebDriver wd) => Element -> wd ()
clearInput :: forall (wd :: * -> *).
(HasCallStack, WebDriver wd) =>
Element -> wd ()
clearInput Element
e = wd NoReturn -> wd ()
forall (m :: * -> *). WebDriver m => m NoReturn -> m ()
noReturn (wd NoReturn -> wd ()) -> wd NoReturn -> wd ()
forall a b. (a -> b) -> a -> b
$ Method -> Element -> Text -> Value -> wd NoReturn
forall (wd :: * -> *) a b.
(HasCallStack, WebDriver wd, ToJSON a, FromJSON b) =>
Method -> Element -> Text -> a -> wd b
doElemCommand Method
methodPost Element
e Text
"/clear" Value
noObject
sendKeys :: (HasCallStack, WebDriver wd) => Text -> Element -> wd ()
sendKeys :: forall (wd :: * -> *).
(HasCallStack, WebDriver wd) =>
Text -> Element -> wd ()
sendKeys Text
t Element
e = wd NoReturn -> wd ()
forall (m :: * -> *). WebDriver m => m NoReturn -> m ()
noReturn (wd NoReturn -> wd ()) -> (Text -> wd NoReturn) -> Text -> wd ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Method -> Element -> Text -> Value -> wd NoReturn
forall (wd :: * -> *) a b.
(HasCallStack, WebDriver wd, ToJSON a, FromJSON b) =>
Method -> Element -> Text -> a -> wd b
doElemCommand Method
methodPost Element
e Text
"/value" (Value -> wd NoReturn) -> (Text -> Value) -> Text -> wd NoReturn
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text -> Value
forall a. ToJSON a => Text -> a -> Value
single Text
"text" (Text -> wd ()) -> Text -> wd ()
forall a b. (a -> b) -> a -> b
$ Text
t