@@ -27,6 +27,7 @@ module Selenium
27
27
, isEnabled
28
28
, getInnerHtml
29
29
, clearEl
30
+ , setFileDetector
30
31
) where
31
32
32
33
import Prelude
@@ -44,8 +45,8 @@ import DOM (DOM())
44
45
45
46
-- | Go to url
46
47
foreign import get :: forall e . Driver -> String -> Aff (selenium :: SELENIUM |e ) Unit
47
- -- | Wait until first argument returns 'true'. If it returns false an error will be raised
48
- foreign import wait :: forall e . Aff (selenium :: SELENIUM |e ) Boolean ->
48
+ -- | Wait until first argument returns 'true'. If it returns false an error will be raised
49
+ foreign import wait :: forall e . Aff (selenium :: SELENIUM |e ) Boolean ->
49
50
Int -> Driver ->
50
51
Aff (selenium :: SELENIUM |e ) Unit
51
52
-- | Finalizer
@@ -58,10 +59,10 @@ foreign import byCss :: forall e. String -> Aff (selenium :: SELENIUM|e) Locator
58
59
foreign import byId :: forall e . String -> Aff (selenium :: SELENIUM |e ) Locator
59
60
foreign import byName :: forall e . String -> Aff (selenium :: SELENIUM |e ) Locator
60
61
foreign import byXPath :: forall e . String -> Aff (selenium :: SELENIUM |e ) Locator
61
- -- | Build locator from asynchronous function returning element.
62
+ -- | Build locator from asynchronous function returning element.
62
63
-- | I.e. this locator will find first visible element with `.common-element` class
63
- -- | ```purescript
64
- -- | affLocator \el -> do
64
+ -- | ```purescript
65
+ -- | affLocator \el -> do
65
66
-- | commonElements <- byCss ".common-element" >>= findElements el
66
67
-- | flagedElements <- traverse (\el -> Tuple el <$> isVisible el) commonElements
67
68
-- | maybe err pure $ foldl foldFn Nothing flagedElements
@@ -73,32 +74,33 @@ foreign import byXPath :: forall e. String -> Aff (selenium :: SELENIUM|e) Locat
73
74
foreign import affLocator :: forall e . (Element -> Aff (selenium :: SELENIUM |e ) Element ) -> Aff (selenium :: SELENIUM |e ) Locator
74
75
75
76
76
- foreign import _findElement :: forall e a . Maybe a -> (a -> Maybe a ) ->
77
+ foreign import _findElement :: forall e a . Maybe a -> (a -> Maybe a ) ->
77
78
Driver -> Locator -> Aff (selenium :: SELENIUM |e ) (Maybe Element )
78
- foreign import _findChild :: forall e a . Maybe a -> (a -> Maybe a ) ->
79
+ foreign import _findChild :: forall e a . Maybe a -> (a -> Maybe a ) ->
79
80
Element -> Locator -> Aff (selenium :: SELENIUM |e ) (Maybe Element )
80
81
foreign import _findElements :: forall e . Driver -> Locator -> Aff (selenium :: SELENIUM |e ) (Array Element )
81
82
foreign import _findChildren :: forall e . Element -> Locator -> Aff (selenium :: SELENIUM |e ) (Array Element )
82
83
83
84
-- | Tries to find an element starting from `document` will return `Nothing` if there
84
85
-- | is no element can be found by locator
85
86
findElement :: forall e . Driver -> Locator -> Aff (selenium :: SELENIUM |e ) (Maybe Element )
86
- findElement = _findElement Nothing Just
87
+ findElement = _findElement Nothing Just
87
88
88
89
-- | Finds elements by locator from `document`
89
- findElements :: forall e f . (Unfoldable f ) => Driver -> Locator -> Aff (selenium :: SELENIUM |e ) (f Element )
90
- findElements driver locator =
90
+ findElements :: forall e f . (Unfoldable f ) => Driver -> Locator -> Aff (selenium :: SELENIUM |e ) (f Element )
91
+ findElements driver locator =
91
92
unfoldr (\xs -> (\rec -> Tuple rec.head rec.tail) <$> uncons xs) <$> (_findElements driver locator)
92
93
93
- -- | Same as `findElement` but starts searching from custom element
94
+ -- | Same as `findElement` but starts searching from custom element
94
95
findChild :: forall e . Element -> Locator -> Aff (selenium :: SELENIUM |e ) (Maybe Element )
95
96
findChild = _findChild Nothing Just
96
97
97
98
-- | Same as `findElements` but starts searching from custom element
98
- findChildren :: forall e f . (Unfoldable f ) => Element -> Locator -> Aff (selenium :: SELENIUM |e ) (f Element )
99
- findChildren el locator =
99
+ findChildren :: forall e f . (Unfoldable f ) => Element -> Locator -> Aff (selenium :: SELENIUM |e ) (f Element )
100
+ findChildren el locator =
100
101
unfoldr (\xs -> (\rec -> Tuple rec.head rec.tail) <$> uncons xs) <$> (_findChildren el locator)
101
102
103
+ foreign import setFileDetector :: forall e . Driver -> FileDetector -> Eff (selenium :: SELENIUM |e ) Unit
102
104
103
105
foreign import navigateBack :: forall e . Driver -> Aff (selenium :: SELENIUM |e ) Unit
104
106
foreign import navigateForward :: forall e . Driver -> Aff (selenium :: SELENIUM |e ) Unit
@@ -116,14 +118,11 @@ foreign import getAttribute :: forall e. Element -> String -> Aff (selenium :: S
116
118
foreign import isDisplayed :: forall e . Element -> Aff (selenium :: SELENIUM |e ) Boolean
117
119
foreign import isEnabled :: forall e . Element -> Aff (selenium :: SELENIUM |e ) Boolean
118
120
foreign import getInnerHtml :: forall e . Element -> Aff (selenium :: SELENIUM |e ) String
119
- -- | Clear `value` of element, if it has no value will do nothing.
120
- -- | If `value` is weakly referenced by `virtual-dom` (`purescript-halogen`)
121
- -- | will not work -- to clear such inputs one should use direct signal from
121
+ -- | Clear `value` of element, if it has no value will do nothing.
122
+ -- | If `value` is weakly referenced by `virtual-dom` (`purescript-halogen`)
123
+ -- | will not work -- to clear such inputs one should use direct signal from
122
124
-- | `Selenium.ActionSequence`
123
125
foreign import clearEl :: forall e . Element -> Aff (selenium :: SELENIUM |e ) Unit
124
126
125
-
126
-
127
-
128
127
129
128
0 commit comments