def click_first_result(self) -> UserInfoView: time.sleep(3) element = BaseButton( driver=self.driver, locator_value= '//androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[1]', locator_by=MobileBy.XPATH) element.click() return UserInfoView(self.driver)
def __init__(self, driver: Remote): super(SearchInput, self).__init__(driver=driver, locator_value='com.truecaller:id/search_field') self.camera_pop_up = BaseButton( driver=self.driver, locator_value= "//*[contains(@text,'Point your camera at any phone')]", locator_by=MobileBy.XPATH)
def __init__(self, driver: Remote): self.driver = driver self.next_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/nextButton') self.continue_button = BaseButton(driver=self.driver, locator_value='android:id/button1') self.cancel_button = BaseButton(driver=self.driver, locator_value='android:id/button2') self.next = BaseButton(driver=self.driver, locator_value='com.truecaller:id/next')
def __init__(self, driver: Remote): super(CreateProfileView, self).__init__(driver) self.type_name_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/manualInputButton') self.first_name_input = BaseInput( driver=self.driver, locator_value='com.truecaller:id/firstName') self.last_name_input = BaseInput( driver=self.driver, locator_value='com.truecaller:id/lastName') self.later_button = BaseButton(driver=self.driver, locator_value="//*[@text='LATER']", locator_by=MobileBy.XPATH, return_view=CallsView)
def __init__(self, driver: Remote): super(StartView, self).__init__(driver) self.get_started_button = self.next_button self.allow_button = BaseButton( driver=self.driver, locator_value= 'com.android.packageinstaller:id/permission_allow_button') self.number_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/wizard_subscription_name', return_view=CreateProfileView) self.agree_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/agreeButton')
class CreateProfileView(BaseView): def __init__(self, driver: Remote): super(CreateProfileView, self).__init__(driver) self.type_name_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/manualInputButton') self.first_name_input = BaseInput( driver=self.driver, locator_value='com.truecaller:id/firstName') self.last_name_input = BaseInput( driver=self.driver, locator_value='com.truecaller:id/lastName') self.later_button = BaseButton(driver=self.driver, locator_value="//*[@text='LATER']", locator_by=MobileBy.XPATH, return_view=CallsView) def fill_profile(self) -> None: if not self.next.is_visible(): self.type_name_button.wait_for_element(timeout=30) self.type_name_button.click() self.first_name_input.set_value('Test') self.last_name_input.set_value('Name') self.next_button.click() for _ in range(3): self.next.click() self.cancel_button.click() time.sleep(1) self.cancel_button.click() self.next.click() self.later_button.click()
class StartView(BaseView): def __init__(self, driver: Remote): super(StartView, self).__init__(driver) self.get_started_button = self.next_button self.allow_button = BaseButton( driver=self.driver, locator_value= 'com.android.packageinstaller:id/permission_allow_button') self.number_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/wizard_subscription_name', return_view=CreateProfileView) self.agree_button = BaseButton( driver=self.driver, locator_value='com.truecaller:id/agreeButton') def allow_permissions(self) -> None: if self.cancel_button.is_visible(): self.cancel_button.click() if self.continue_button.is_visible(): self.continue_button.click() if self.allow_button.is_visible(): for _ in range(4): self.allow_button.click()
class SearchInput(BaseInput): def __init__(self, driver: Remote): super(SearchInput, self).__init__(driver=driver, locator_value='com.truecaller:id/search_field') self.camera_pop_up = BaseButton( driver=self.driver, locator_value= "//*[contains(@text,'Point your camera at any phone')]", locator_by=MobileBy.XPATH) def set_value(self, value: str) -> None: if self.camera_pop_up.is_visible(): try: action = TouchAction(self.driver) action.tap(None, 241, 720).perform() except InvalidElementStateException: pass super(SearchInput, self).set_value(value=value)
def __init__(self, driver: Remote): super(CallsView, self).__init__(driver) self.truecaller_logo = BaseButton( driver=self.driver, locator_value='com.truecaller:id/truecaller_logo', return_view=SearchView)