Example #1
0
 def dropdown_select(self,
                     select_text: str,
                     locator: Locator,
                     dynamic_value=None):
     if locator is not None:
         self.click(locator, dynamic_value)
     if self.target == MobileDevice.iOS:
         self.input(
             Locator(
                 name='PICKER WHEEL SELECT',
                 by=By.XPATH,
                 value=
                 '//XCUIElementTypePicker[@name="ios_picker"]/XCUIElementTypePickerWheel',
                 dynamic=False,
                 description='PICKER WHEEL SELECT',
                 check_opening_page=False), select_text)
         self.click(
             Locator(name='PICKER WHEEL DONE',
                     by=By.XPATH,
                     value='//XCUIElementTypeOther[@name="done_button"]',
                     dynamic=False,
                     description='PICKER WHEEL DONE',
                     check_opening_page=False))
     else:
         self.click(
             Locator(name='ANDROID_SELECT',
                     by=By.XPATH,
                     value='//android.widget.CheckedTextView[@text="%s"]',
                     dynamic=True,
                     description='ANDROID_SELECT',
                     check_opening_page=False), select_text)
     return True
Example #2
0
 def wait(self, locator: Locator, dynamic_value=None, hard_assert=True):
     t_start = datetime.datetime.now()
     t_end = t_start + datetime.timedelta(seconds=self.wait_current)
     while True:
         if datetime.datetime.now() >= t_end:
             break
         try:
             if self.driver.find_element(
                     locator.by,
                     locator.value(dynamic_value)).is_displayed():
                 return True
             if self.is_web_platform():
                 self.driver.execute_script(
                     "arguments[0].scrollIntoView();",
                     self.driver.find_element(locator.by,
                                              locator.value(dynamic_value)))
         except NoSuchElementException:
             continue
         except TimeoutException:
             continue
     if hard_assert:
         msg = '[Data: %s] [Method: %s] [Status: %s] + [Hard Assert]' % (
             self, 'wait', 'Fail')
         echo(msg, color=ECHO_COLORS.FAIL)
         error_message(msg, self)
         assert False, msg
     return False
Example #3
0
 def scroll(self,
            locator1: Locator,
            locator2: Locator,
            dynamic_value1=None,
            dynamic_value2=None):
     if self.is_mobile_platform():
         element1 = self.driver.find_element(locator1.by,
                                             locator1.value(dynamic_value1))
         element2 = self.driver.find_element(locator2.by,
                                             locator2.value(dynamic_value2))
         action = TouchAction(self.driver)
         action.press(element1).move_to(element2).release().perform()
         return True
     return False
Example #4
0
 def _generate_locator(self, locator):
     return Locator(locator['locatorName'],
                    get_by(locator[self.platform_name]['locatorBy']),
                    locator[self.platform_name]['locatorValue'],
                    locator[self.platform_name]['locatorDynamic'],
                    locator['locatorDescription'],
                    self._get_locator_check_parameter(locator))
Example #5
0
 def clear(self, locator: Locator, dynamic_value=None):
     if self.wait(locator, dynamic_value):
         element = self.driver.find_element(locator.by,
                                            locator.value(dynamic_value))
         if self.is_mobile_platform():
             element.clear()
         else:
             element.send_keys(''.join(
                 map(str,
                     ['\b'
                      for i in self.get_text(locator, dynamic_value)])))
         return True
     return False
Example #6
0
 def is_exists(self, locator: Locator, dynamic_value=None):
     t_start = datetime.datetime.now()
     t_end = t_start + datetime.timedelta(seconds=self.wait_current)
     while True:
         if datetime.datetime.now() >= t_end:
             break
         try:
             if self.driver.find_element(
                     locator.by,
                     locator.value(dynamic_value)).is_displayed():
                 return True
         except NoSuchElementException:
             continue
     return False
Example #7
0
 def exists(self, locator: Locator, dynamic_value=None):
     try:
         return self.driver.find_element(
             locator.by, locator.value(dynamic_value)).is_displayed()
     except NoSuchElementException:
         return False
Example #8
0
 def input(self, locator: Locator, text, dynamic_value=None):
     if self.wait(locator, dynamic_value):
         self.driver.find_element(
             locator.by, locator.value(dynamic_value)).send_keys(text)
         return True
     return False
Example #9
0
 def click(self, locator: Locator, dynamic_value=None):
     if self.wait(locator, dynamic_value):
         self.driver.find_element(locator.by,
                                  locator.value(dynamic_value)).click()
         return True
     return False
Example #10
0
 def not_exists(self, locator: Locator, dynamic_value=None):
     try:
         self.driver.find_element(locator.by, locator.value(dynamic_value))
         return False
     except NoSuchElementException:
         return True
Example #11
0
 def get_text(self, locator: Locator, dynamic_value=None):
     if self.wait(locator, dynamic_value):
         return self.driver.find_element(locator.by,
                                         locator.value(dynamic_value)).text
Example #12
0
from locators.locator import Locator
from selenium.webdriver.common.by import By

# FOR TAKE PHOTO
# ANDROID
ANDROID_SELECT_TAKE_PHOTO = Locator(
    name='ANDROID SELECT TAKE PHOTO TEXT',
    by=By.XPATH,
    value='//android.widget.TextView[@text="Take Photo…"]',
    dynamic=False,
    description='ANDROID SELECT TAKE PHOTO TEXT',
    check_opening_page=False)
ANDROID_TAKE_PHOTO_1 = Locator(name='ANDROID TAKE PHOTO 1',
                               by=By.XPATH,
                               value='(//GLButton[@content-desc="NONE"])[2]',
                               dynamic=False,
                               description='ANDROID TAKE PHOTO 1',
                               check_opening_page=False)
ANDROID_TAKE_PHOTO_2 = Locator(
    name='ANDROID TAKE PHOTO 2',
    by=By.XPATH,
    value='//android.widget.ImageView[@content-desc="Shutter"]',
    dynamic=False,
    description='ANDROID TAKE PHOTO 2',
    check_opening_page=False)
ANDROID_TAKE_PHOTO_3 = Locator(
    name='ANDROID TAKE PHOTO 3',
    by=By.XPATH,
    value='//android.view.View[@content-desc="Shutter button"]',
    dynamic=False,
    description='ANDROID TAKE PHOTO 3',
Example #13
0
 def get_text(self, locator: Locator, dynamic_value=None):
     if self.wait(locator, dynamic_value):
         element = self.driver.find_element(locator.by,
                                            locator.value(dynamic_value))
         return element.text if element.text != '' else element.get_attribute(
             "value")