Skip to content
This repository was archived by the owner on Nov 23, 2023. It is now read-only.

Commit c585cbb

Browse files
committed
feat: Create ElementFinder class
1 parent 2829ff8 commit c585cbb

File tree

6 files changed

+37
-41
lines changed

6 files changed

+37
-41
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from .elementfinder import ElementFinder
2+
3+
__all__ = ["ElementFinder"]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from appium_flutter_finder import FlutterElement, FlutterFinder
2+
3+
class ElementFinder():
4+
def __init__(self):
5+
self._element_finder = FlutterFinder()
6+
7+
def find_by_key(self, application, element_key):
8+
finder_key = self._element_finder.by_value_key(element_key)
9+
element = FlutterElement(application, finder_key)
10+
11+
return element

AppiumFlutterLibrary/keywords/_applicationmanagement.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# -*- coding: utf-8 -*-
22

33
import robot
4-
from appium import webdriver
54
from AppiumFlutterLibrary.utils import ApplicationCache
65
from AppiumFlutterLibrary.keywords.keywordgroup import KeywordGroup
76
from appium.webdriver import Remote
8-
from appium_flutter_finder import FlutterElement, FlutterFinder
97

108
class _ApplicationManagementKeyWords(KeywordGroup):
119
def __init__(self):
Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,20 @@
11
import time
2-
from robot.libraries.BuiltIn import BuiltIn
32
from .keywordgroup import KeywordGroup
4-
from appium_flutter_finder import FlutterElement, FlutterFinder
3+
from AppiumFlutterLibrary.finder import ElementFinder
54

6-
try:
7-
basestring # attempt to evaluate basestring
8-
9-
def isstr(s):
10-
return isinstance(s, basestring)
11-
except NameError:
12-
def isstr(s):
13-
return isinstance(s, str)
5+
def isstr(s):
6+
return isinstance(s, str)
147

158
class _ElementKeywords(KeywordGroup):
169
def __init__(self):
17-
self._element_finder = FlutterFinder()
18-
self._bi = BuiltIn()
10+
self._element_finder = ElementFinder()
1911

2012
def input_text(self, locator, text):
2113
application = self._current_application()
22-
finder = FlutterFinder()
23-
key_finder = finder.by_value_key(locator)
24-
element = FlutterElement(application, key_finder)
14+
element = self._element_finder.find_by_key(application, locator)
2515
element.send_keys(text)
2616

2717
def click_element(self, locator):
2818
application = self._current_application()
29-
finder = FlutterFinder()
30-
key_finder = finder.by_value_key(locator)
31-
element = FlutterElement(application, key_finder)
19+
element = self._element_finder.find_by_key(application, locator)
3220
element.click()
33-
34-
35-
def _element_find(self, locator):
36-
application = self._current_application()
37-
element = None
38-
if isstr(locator):
39-
_locator = locator
40-
_key_finder = self._element_finder.by_value_key(_locator)
41-
element = FlutterElement(application, _key_finder)
42-
43-
return element
44-
45-
def _is_visible(self, locator):
46-
element = self._element_find(locator)
47-
if element is not None:
48-
return element.is_displayed()
49-
return None
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from _typeshed import ReadableBuffer
2+
from AppiumFlutterLibrary.finder import ElementFinder
3+
from AppiumFlutterLibrary.keywords.keywordgroup import KeywordGroup
4+
5+
class _ScreenKeywords(KeywordGroup):
6+
def __init__(self):
7+
self._element_finder = ElementFinder()
8+
9+
def scroll_to_element(self, locator):
10+
application = self._current_application()
11+
element = self._element_finder.find_by_key(application, locator)
12+
application.execute_script('flutter:scrollIntoView', element)

AppiumFlutterLibrary/keywords/_waiting.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import robot
22
from AppiumFlutterLibrary.keywords.keywordgroup import KeywordGroup
3-
from appium_flutter_finder import FlutterElement, FlutterFinder
3+
from AppiumFlutterLibrary.finder import ElementFinder
44

55

66
class _WaintingKeywords(KeywordGroup):
7+
def __init__(self):
8+
self._element_finder = ElementFinder()
9+
710
def wait_for_element(self, locator, timeout=None, error=None):
811
application = self._current_application()
9-
finder = FlutterFinder()
10-
key_finder = finder.by_value_key(locator)
11-
element = FlutterElement(application, key_finder)
12+
element = self._element_finder.find_by_key(application, locator)
1213
application.execute_script('flutter:waitFor', element)
1314

1415
def _format_timeout(self, timeout):

0 commit comments

Comments
 (0)