Module

Selenium

Package
purescript-webdriver
Repository
slamdata/purescript-webdriver

#get Source

get :: forall e. Driver -> String -> Aff (selenium :: SELENIUM | e) Unit

Go to url

#wait Source

wait :: forall e. Aff (selenium :: SELENIUM | e) Boolean -> Milliseconds -> Driver -> Aff (selenium :: SELENIUM | e) Unit

Wait until first argument returns 'true'. If it returns false an error will be raised

#quit Source

quit :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Unit

Finalizer

#byClassName Source

byClassName :: forall e. String -> Aff (selenium :: SELENIUM | e) Locator

#byCss Source

byCss :: forall e. String -> Aff (selenium :: SELENIUM | e) Locator

#byId Source

byId :: forall e. String -> Aff (selenium :: SELENIUM | e) Locator

#byName Source

byName :: forall e. String -> Aff (selenium :: SELENIUM | e) Locator

#byXPath Source

byXPath :: forall e. String -> Aff (selenium :: SELENIUM | e) Locator

#affLocator Source

affLocator :: forall e. (Element -> Aff (selenium :: SELENIUM | e) Element) -> Aff (selenium :: SELENIUM | e) Locator

Build locator from asynchronous function returning element. I.e. this locator will find first visible element with .common-element class

affLocator \el → do
  commonElements ← byCss ".common-element" >>= findElements el
  flagedElements ← traverse (\el → Tuple el <$> isVisible el) commonElements
  maybe err pure $ foldl foldFn Nothing flagedElements
  where
  err = throwError $ error "all common elements are not visible"
  foldFn Nothing (Tuple el true) = Just el
  foldFn a _ = a

#findExact Source

findExact :: forall e. Driver -> Locator -> Aff (selenium :: SELENIUM | e) Element

#childExact Source

childExact :: forall e. Element -> Locator -> Aff (selenium :: SELENIUM | e) Element

#findElement Source

findElement :: forall e. Driver -> Locator -> Aff (selenium :: SELENIUM | e) (Maybe Element)

Tries to find an element starting from document; will return Nothing if there is no element can be found by locator

#loseElement Source

loseElement :: forall e. Driver -> Locator -> Aff (selenium :: SELENIUM | e) Unit

Tries to find element and throws an error if it succeeds.

#findElements Source

findElements :: forall f e. Unfoldable f => Driver -> Locator -> Aff (selenium :: SELENIUM | e) (f Element)

Finds elements by locator from document

#findChild Source

findChild :: forall e. Element -> Locator -> Aff (selenium :: SELENIUM | e) (Maybe Element)

Same as findElement but starts searching from custom element

#findChildren Source

findChildren :: forall f e. Unfoldable f => Element -> Locator -> Aff (selenium :: SELENIUM | e) (f Element)

Same as findElements but starts searching from custom element

#setFileDetector Source

setFileDetector :: forall e. Driver -> FileDetector -> Aff (selenium :: SELENIUM | e) Unit

#navigateBack Source

navigateBack :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Unit

#navigateForward Source

navigateForward :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Unit

#refresh Source

refresh :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Unit

#navigateTo Source

navigateTo :: forall e. String -> Driver -> Aff (selenium :: SELENIUM | e) Unit

#getCurrentUrl Source

getCurrentUrl :: forall e. Driver -> Aff (selenium :: SELENIUM | e) String

#getTitle Source

getTitle :: forall e. Driver -> Aff (selenium :: SELENIUM | e) String

#executeStr Source

executeStr :: forall e. Driver -> String -> Aff (selenium :: SELENIUM | e) Foreign

Executes javascript script from String argument.

#sendKeysEl Source

sendKeysEl :: forall e. String -> Element -> Aff (selenium :: SELENIUM | e) Unit

#clickEl Source

clickEl :: forall e. Element -> Aff (selenium :: SELENIUM | e) Unit

#getCssValue Source

getCssValue :: forall e. Element -> String -> Aff (selenium :: SELENIUM | e) String

#getAttribute Source

getAttribute :: forall e. Element -> String -> Aff (selenium :: SELENIUM | e) (Maybe String)

Tries to find an element starting from document; will return Nothing if there is no element can be found by locator

#getText Source

getText :: forall e. Element -> Aff (selenium :: SELENIUM | e) String

#isDisplayed Source

isDisplayed :: forall e. Element -> Aff (selenium :: SELENIUM | e) Boolean

#isEnabled Source

isEnabled :: forall e. Element -> Aff (selenium :: SELENIUM | e) Boolean

#getInnerHtml Source

getInnerHtml :: forall e. Element -> Aff (selenium :: SELENIUM | e) String

#getSize Source

getSize :: forall e. Element -> Aff (selenium :: SELENIUM | e) Size

#getLocation Source

getLocation :: forall e. Element -> Aff (selenium :: SELENIUM | e) Location

#clearEl Source

clearEl :: forall e. Element -> Aff (selenium :: SELENIUM | e) Unit

Clear value of element, if it has no value will do nothing. If value is weakly referenced by virtual-dom (purescript-halogen) will not work -- to clear such inputs one should use direct signal from Selenium.ActionSequence

#takeScreenshot Source

takeScreenshot :: forall e. Driver -> Aff (selenium :: SELENIUM | e) String

Returns png base64 encoded png image

#saveScreenshot Source

saveScreenshot :: forall e. String -> Driver -> Aff (selenium :: SELENIUM | e) Unit

Saves screenshot to path

#getWindow Source

getWindow :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Window

#getWindowPosition Source

getWindowPosition :: forall e. Window -> Aff (selenium :: SELENIUM | e) Location

#getWindowSize Source

getWindowSize :: forall e. Window -> Aff (selenium :: SELENIUM | e) Size

#maximizeWindow Source

maximizeWindow :: forall e. Window -> Aff (selenium :: SELENIUM | e) Unit

#setWindowPosition Source

setWindowPosition :: forall e. Location -> Window -> Aff (selenium :: SELENIUM | e) Unit

#setWindowSize Source

setWindowSize :: forall e. Size -> Window -> Aff (selenium :: SELENIUM | e) Unit

#getWindowScroll Source

getWindowScroll :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Location

#getWindowHandle Source

getWindowHandle :: forall e. Driver -> Aff (selenium :: SELENIUM | e) WindowHandle

#getAllWindowHandles Source

getAllWindowHandles :: forall e f. Unfoldable f => Driver -> Aff (selenium :: SELENIUM | e) (f WindowHandle)

#switchTo Source

switchTo :: forall e. WindowHandle -> Driver -> Aff (selenium :: SELENIUM | e) Unit

#close Source

close :: forall e. Driver -> Aff (selenium :: SELENIUM | e) Unit