Lines Matching full:action
9 from crossbench.action_runner.action.action import ACTION_TIMEOUT
10 from crossbench.action_runner.action.action_type import ActionType
11 from crossbench.action_runner.action.click import ClickAction
12 from crossbench.action_runner.action.enums import ReadyState, WindowTarget
13 from crossbench.action_runner.action.get import GetAction
14 from crossbench.action_runner.action.inject_new_document_script import \
16 from crossbench.action_runner.action.js import JsAction
17 from crossbench.action_runner.action.scroll import ScrollAction
18 from crossbench.action_runner.action.swipe import SwipeAction
19 from crossbench.action_runner.action.switch_tab import SwitchTabAction
20 from crossbench.action_runner.action.text_input import TextInputAction
21 from crossbench.action_runner.action.wait import WaitAction
22 from crossbench.action_runner.action.wait_for_element import \
24 from crossbench.action_runner.action.wait_for_ready_state import \
34 config_dict = {"action": "get", "url": "http://crossben.ch"}
35 action = GetAction.parse_dict(config_dict)
37 self.assertEqual(action.TYPE, ActionType.GET)
38 self.assertEqual(action.url, "http://crossben.ch")
39 self.assertEqual(action.timeout, ACTION_TIMEOUT)
40 self.assertEqual(action.duration, dt.timedelta())
41 self.assertTrue(action.has_timeout)
42 action.validate()
44 action_2 = GetAction.parse_dict(action.to_json())
45 self.assertEqual(action, action_2)
50 "action": "get",
57 action = GetAction.parse_dict(config_dict)
59 self.assertEqual(action.TYPE, ActionType.GET)
60 self.assertEqual(action.url, "http://crossben.ch")
61 self.assertEqual(action.timeout, dt.timedelta(seconds=34))
62 self.assertEqual(action.duration, dt.timedelta(seconds=12))
63 self.assertEqual(action.ready_state, ReadyState.ANY)
64 self.assertEqual(action.target, WindowTarget.TOP)
65 self.assertTrue(action.has_timeout)
66 action.validate()
68 action_2 = GetAction.parse_dict(action.to_json())
69 self.assertEqual(action, action_2)
74 "action": "get",
78 action = GetAction.parse_dict(config_dict)
79 self.assertEqual(action.target, WindowTarget.NEW_TAB)
80 action.validate()
82 action_2 = GetAction.parse_dict(action.to_json())
83 self.assertEqual(action, action_2)
88 "action": "get",
92 action = GetAction.parse_dict(config_dict)
93 self.assertEqual(action.target, WindowTarget.NEW_WINDOW)
94 action.validate()
96 action_2 = GetAction.parse_dict(action.to_json())
97 self.assertEqual(action, action_2)
103 "action": "get",
111 "action": "get",
120 "action": "get",
127 config_dict = {"action": "wait", "duration": "12s"}
128 action = WaitAction.parse_dict(config_dict)
130 self.assertEqual(action.TYPE, ActionType.WAIT)
131 self.assertEqual(action.duration, dt.timedelta(seconds=12))
132 self.assertEqual(action.timeout, ACTION_TIMEOUT)
133 self.assertTrue(action.has_timeout)
134 action.validate()
136 action_2 = WaitAction.parse_dict(action.to_json())
137 self.assertEqual(action, action_2)
142 WaitAction.parse_dict({"action": "wait"})
146 config_dict = {"action": "scroll"}
147 action = ScrollAction.parse_dict(config_dict)
149 self.assertEqual(action.TYPE, ActionType.SCROLL)
150 self.assertEqual(action.timeout, ACTION_TIMEOUT)
151 self.assertEqual(action.duration, dt.timedelta(seconds=1))
152 self.assertEqual(action.distance, 500)
153 self.assertEqual(action.input_source, InputSource.JS)
154 self.assertTrue(action.has_timeout)
155 action.validate()
157 action_2 = ScrollAction.parse_dict(action.to_json())
158 self.assertEqual(action, action_2)
163 "action": "scroll",
171 action = ScrollAction.parse_dict(config_dict)
173 self.assertEqual(action.TYPE, ActionType.SCROLL)
174 self.assertEqual(action.timeout, dt.timedelta(seconds=12))
175 self.assertEqual(action.duration, dt.timedelta(seconds=34))
176 self.assertEqual(action.distance, 123)
177 self.assertEqual(action.input_source, InputSource.JS)
178 self.assertTrue(action.required)
179 self.assertEqual(action.selector, "#button")
180 self.assertTrue(action.has_timeout)
181 action.validate()
183 action_2 = ScrollAction.parse_dict(action.to_json())
184 self.assertEqual(action, action_2)
189 "action": "scroll",
201 "action": "scroll",
208 "action": "scroll",
219 ScrollAction.parse_dict({"action": "scroll", "distance": ""})
222 ScrollAction.parse_dict({"action": "scroll", "distance": "0"})
226 config_dict = {"action": "click", "selector": "#button"}
227 action = ClickAction.parse_dict(config_dict)
229 self.assertEqual(action.TYPE, ActionType.CLICK)
230 self.assertEqual(action.timeout, ACTION_TIMEOUT)
231 self.assertEqual(action.input_source, InputSource.JS)
232 self.assertEqual(action.selector, "#button")
233 self.assertFalse(action.required)
234 self.assertFalse(action.scroll_into_view)
235 self.assertIsNone(action.coordinates)
236 self.assertTrue(action.has_timeout)
237 action.validate()
239 action_2 = ClickAction.parse_dict(action.to_json())
240 self.assertEqual(action, action_2)
244 config_dict = {"action": "click", "source": "touch", "x": 1, "y": 2}
245 action = ClickAction.parse_dict(config_dict)
247 self.assertEqual(action.TYPE, ActionType.CLICK)
248 self.assertEqual(action.timeout, ACTION_TIMEOUT)
249 self.assertEqual(action.input_source, InputSource.TOUCH)
250 self.assertIsNone(action.selector)
251 self.assertFalse(action.required)
252 self.assertFalse(action.scroll_into_view)
253 self.assertEqual(action.coordinates.x, 1)
254 self.assertEqual(action.coordinates.y, 2)
255 self.assertTrue(action.has_timeout)
256 action.validate()
258 action_2 = ClickAction.parse_dict(action.to_json())
259 self.assertEqual(action, action_2)
264 "action": "click",
271 action = ClickAction.parse_dict(config_dict)
273 self.assertEqual(action.TYPE, ActionType.CLICK)
274 self.assertEqual(action.timeout, dt.timedelta(seconds=12))
275 self.assertEqual(action.input_source, InputSource.JS)
276 self.assertEqual(action.selector, "#button")
277 self.assertTrue(action.required)
278 self.assertTrue(action.scroll_into_view)
279 self.assertTrue(action.has_timeout)
280 action.validate()
282 action_2 = ClickAction.parse_dict(action.to_json())
283 self.assertEqual(action, action_2)
289 "action": "click",
298 "action": "click",
306 ClickAction.parse_dict({"action": "click", "selector": ""})
312 "action": "click",
322 ClickAction.parse_dict({"action": "click", "source": "TOUCH", "x": 0})
328 "action": "click",
339 "action": "click",
350 "action": "click",
359 ClickAction.parse_dict({"action": "click", "source": "TOUCH"})
364 "action": "swipe",
371 action = SwipeAction.parse_dict(config_dict)
373 self.assertEqual(action.TYPE, ActionType.SWIPE)
374 self.assertEqual(action.timeout, ACTION_TIMEOUT)
375 self.assertEqual(action.duration, dt.timedelta(seconds=12))
376 self.assertEqual(action.start_x, 100)
377 self.assertEqual(action.start_y, 200)
378 self.assertEqual(action.end_x, 110)
379 self.assertEqual(action.end_y, 220)
380 self.assertTrue(action.has_timeout)
381 action.validate()
383 action_2 = SwipeAction.parse_dict(action.to_json())
384 self.assertEqual(action, action_2)
389 "action": "text_input",
393 action = TextInputAction.parse_dict(config_dict)
395 self.assertEqual(action.TYPE, ActionType.TEXT_INPUT)
396 self.assertEqual(action.timeout, ACTION_TIMEOUT)
397 self.assertEqual(action.input_source, InputSource.JS)
398 self.assertEqual(action.text, "some text")
399 self.assertEqual(action.duration, dt.timedelta(seconds=10))
400 self.assertTrue(action.has_timeout)
401 action.validate()
403 action_2 = TextInputAction.parse_dict(action.to_json())
404 self.assertEqual(action, action_2)
409 "action": "text_input",
414 action = TextInputAction.parse_dict(config_dict)
416 self.assertEqual(action.input_source, InputSource.KEYBOARD)
421 "action": "text_input",
431 "action": "text_input",
440 "action": "text_input",
449 config_dict = {"action": "text_input", "duration": "1s"}
456 "action": "wait_for_element",
459 action = WaitForElementAction.parse_dict(config_dict)
461 self.assertEqual(action.TYPE, ActionType.WAIT_FOR_ELEMENT)
462 self.assertEqual(action.timeout, ACTION_TIMEOUT)
463 self.assertEqual(action.selector, "#button")
464 self.assertTrue(action.has_timeout)
465 action.validate()
467 action_2 = WaitForElementAction.parse_dict(action.to_json())
468 self.assertEqual(action, action_2)
473 "action": "wait_for_element",
477 action = WaitForElementAction.parse_dict(config_dict)
479 self.assertEqual(action.TYPE, ActionType.WAIT_FOR_ELEMENT)
480 self.assertEqual(action.timeout, dt.timedelta(seconds=12))
481 self.assertEqual(action.selector, "#button")
482 self.assertTrue(action.has_timeout)
483 action.validate()
485 action_2 = WaitForElementAction.parse_dict(action.to_json())
486 self.assertEqual(action, action_2)
491 "action": "js",
494 action = JsAction.parse_dict(config_dict)
496 self.assertEqual(action.TYPE, ActionType.JS)
497 self.assertEqual(action.timeout, ACTION_TIMEOUT)
498 self.assertEqual(action.script, "alert(1)")
499 self.assertTrue(action.has_timeout)
500 action.validate()
502 action_2 = JsAction.parse_dict(action.to_json())
503 self.assertEqual(action, action_2)
509 "action": "js",
512 action = JsAction.parse_dict(config_dict)
514 self.assertEqual(action.TYPE, ActionType.JS)
515 self.assertEqual(action.timeout, ACTION_TIMEOUT)
516 self.assertEqual(action.script, "alert(2)")
517 self.assertTrue(action.has_timeout)
518 action.validate()
520 action_2 = JsAction.parse_dict(action.to_json())
521 self.assertEqual(action, action_2)
527 "action": "js",
533 action = JsAction.parse_dict(config_dict)
535 self.assertEqual(action.TYPE, ActionType.JS)
536 self.assertEqual(action.script, "alert('something')")
537 action.validate()
539 action_2 = JsAction.parse_dict(action.to_json())
540 self.assertEqual(action, action_2)
545 "action": "js",
555 "action": "js",
563 "action": "js",
574 "action": "js",
586 "action": "js",
600 "action": "inject_new_document_script",
603 action = InjectNewDocumentScriptAction.parse_dict(config_dict)
605 self.assertEqual(action.TYPE, ActionType.INJECT_NEW_DOCUMENT_SCRIPT)
606 self.assertEqual(action.timeout, ACTION_TIMEOUT)
607 self.assertEqual(action.script, "alert(1)")
608 self.assertTrue(action.has_timeout)
609 action.validate()
611 action_2 = InjectNewDocumentScriptAction.parse_dict(action.to_json())
612 self.assertEqual(action, action_2)
618 "action": "inject_new_document_script",
621 action = InjectNewDocumentScriptAction.parse_dict(config_dict)
623 self.assertEqual(action.TYPE, ActionType.INJECT_NEW_DOCUMENT_SCRIPT)
624 self.assertEqual(action.timeout, ACTION_TIMEOUT)
625 self.assertEqual(action.script, "alert(2)")
626 self.assertTrue(action.has_timeout)
627 action.validate()
629 action_2 = InjectNewDocumentScriptAction.parse_dict(action.to_json())
630 self.assertEqual(action, action_2)
636 "action": "inject_new_document_script",
642 action = InjectNewDocumentScriptAction.parse_dict(config_dict)
644 self.assertEqual(action.TYPE, ActionType.INJECT_NEW_DOCUMENT_SCRIPT)
645 self.assertEqual(action.script, "alert('something')")
646 action.validate()
648 action_2 = InjectNewDocumentScriptAction.parse_dict(action.to_json())
649 self.assertEqual(action, action_2)
654 "action": "inject_new_document_script",
664 "action": "inject_new_document_script",
672 "action": "inject_new_document_script",
683 "action": "inject_new_document_script",
695 "action": "inject_new_document_script",
709 "action": "switch_tab",
714 action = SwitchTabAction.parse_dict(config_dict)
716 self.assertEqual(action.TYPE, ActionType.SWITCH_TAB)
717 self.assertEqual(action.tab_index, 17)
718 self.assertEqual(action.title.pattern, "^Example.*")
719 self.assertEqual(action.url.pattern, "http(s)?://example.com")
720 action.validate()
722 action_2 = SwitchTabAction.parse_dict(action.to_json())
723 self.assertEqual(action, action_2)
728 "action": "switch_tab",
730 action = SwitchTabAction.parse_dict(config_dict)
732 self.assertEqual(action.TYPE, ActionType.SWITCH_TAB)
733 self.assertEqual(action.tab_index, None)
734 self.assertEqual(action.title, None)
735 self.assertEqual(action.url, None)
736 action.validate()
738 action_2 = SwitchTabAction.parse_dict(action.to_json())
739 self.assertEqual(action, action_2)
744 "action": "wait_for_ready_state",
746 action = WaitForReadyStateAction.parse_dict(config_dict)
748 self.assertEqual(action.TYPE, ActionType.WAIT_FOR_READY_STATE)
749 self.assertEqual(action.ready_state, ReadyState.COMPLETE)
750 action.validate()
752 action_2 = WaitForReadyStateAction.parse_dict(action.to_json())
753 self.assertEqual(action, action_2)
758 "action": "wait_for_ready_state",
761 action = WaitForReadyStateAction.parse_dict(config_dict)
763 self.assertEqual(action.TYPE, ActionType.WAIT_FOR_READY_STATE)
764 self.assertEqual(action.ready_state, ReadyState.INTERACTIVE)
765 action.validate()
767 action_2 = WaitForReadyStateAction.parse_dict(action.to_json())
768 self.assertEqual(action, action_2)