From b2f5146a8ab1e16b0d928c9ea59e0eedf3d8104e Mon Sep 17 00:00:00 2001 From: Anton Danchenko Date: Wed, 28 Mar 2018 13:21:39 +0300 Subject: [PATCH] wip Signed-off-by: yevh-berdnyk --- test/appium/tests/__init__.py | 14 ++++----- test/appium/tests/base_test_case.py | 9 ++++-- test/appium/tests/test_dapps_and_browsing.py | 8 ++--- test/appium/tests/test_messaging.py | 6 ++-- test/appium/tests/test_sanity.py | 2 +- test/appium/tests/test_transaction.py | 14 +++++++-- test/appium/views/base_element.py | 2 +- test/appium/views/base_view.py | 22 +++++--------- test/appium/views/chat_view.py | 32 +++++++++----------- test/appium/views/home_view.py | 26 ++++++++++++---- test/appium/views/profile_view.py | 4 +-- test/appium/views/sign_in_view.py | 16 +++++++++- test/appium/views/start_new_chat_view.py | 6 ++-- test/appium/views/web_views/auction_house.py | 16 +++++++--- test/appium/views/web_views/base_web_view.py | 5 --- 15 files changed, 110 insertions(+), 72 deletions(-) diff --git a/test/appium/tests/__init__.py b/test/appium/tests/__init__.py index 7cafd80f2d..d6a7de5b67 100644 --- a/test/appium/tests/__init__.py +++ b/test/appium/tests/__init__.py @@ -67,17 +67,17 @@ transaction_users['B_USER']['username'] = "Brief Organic Xenops" transaction_users['B_USER']['address'] = "3d672407a7e1250bbff85b7cfdb456f5015164db" transaction_users['B_USER']['public_key'] = "0x0406b17e5cdfadb2a05e84508b1a2916def6395e6295f57e92b85f915d40bca3" \ "f4a7e4c6d6b25afa840dd042fac83d3f856181d553f34f1c2b12878e774adde099" -transaction_users['С_USER'] = dict() -transaction_users['С_USER']['password'] = "qwerty" -transaction_users['С_USER']['passphrase'] = "romance emerge transfer trial enemy average casino decline old bag mandate winner" -transaction_users['С_USER']['username'] = "Speedy Occasional Lightningbug" -transaction_users['С_USER']['address'] = "853bdd57e881ed09d045ceee53564a00e1da3cf9" -transaction_users['С_USER']['public_key'] = "0x04aa3f3977b0c06ce04f4cdfd2ea5baf5560e18aba52324f6d4bf69bbd603b60" \ +transaction_users['C_USER'] = dict() +transaction_users['C_USER']['password'] = "qwerty" +transaction_users['C_USER']['passphrase'] = "romance emerge transfer trial enemy average casino decline old bag mandate winner" +transaction_users['C_USER']['username'] = "Speedy Occasional Lightningbug" +transaction_users['C_USER']['address'] = "853bdd57e881ed09d045ceee53564a00e1da3cf9" +transaction_users['C_USER']['public_key'] = "0x04aa3f3977b0c06ce04f4cdfd2ea5baf5560e18aba52324f6d4bf69bbd603b60" \ "0e874ed483920d9613882e7345b70b1d95c6ca4ee8b18089da1d064c498355c944" transaction_users['D_USER'] = dict() transaction_users['D_USER']['password'] = "qwerty" transaction_users['D_USER']['passphrase'] = "grit half victory alarm code chicken drill worth valve rug clown guess" -transaction_users['D_USER']['username'] = "Frilly Mediumdpringgreen Kingsnake" +transaction_users['D_USER']['username'] = "Frilly Mediumspringgreen Kingsnake" transaction_users['D_USER']['address'] = "1bd914e370a63714ee144692002046c7e6d83348" transaction_users['D_USER']['public_key'] = "0x041aa2bbf1cc1253bf658a4a44289cdd0031f0038f8d085b1a43b69550e3467b" \ "c1f7963c35d0016d9c23d28960b984045c00bd9373b413b1d19aa4370261b8d084" diff --git a/test/appium/tests/base_test_case.py b/test/appium/tests/base_test_case.py index 195ab604d5..7b6f951999 100644 --- a/test/appium/tests/base_test_case.py +++ b/test/appium/tests/base_test_case.py @@ -57,12 +57,15 @@ class AbstractTestCase: desired_caps['name'] = test_suite_data.current_test.name desired_caps['platformName'] = 'Android' desired_caps['appiumVersion'] = '1.7.2' - desired_caps['platformVersion'] = '6.0' + desired_caps['platformVersion'] = '7.1' desired_caps['deviceName'] = 'Android GoogleAPI Emulator' desired_caps['deviceOrientation'] = "portrait" desired_caps['commandTimeout'] = 600 desired_caps['idleTimeout'] = 1000 desired_caps['unicodeKeyboard'] = True + desired_caps['automationName'] = 'UiAutomator2' + desired_caps['setWebContentDebuggingEnabled'] = True + desired_caps['ignoreUnimportantViews'] = False return desired_caps @property @@ -72,10 +75,12 @@ class AbstractTestCase: desired_caps['deviceName'] = 'nexus_5' desired_caps['platformName'] = 'Android' desired_caps['appiumVersion'] = '1.7.2' - desired_caps['platformVersion'] = '6.0' + desired_caps['platformVersion'] = '7.1' desired_caps['newCommandTimeout'] = 600 desired_caps['fullReset'] = False desired_caps['unicodeKeyboard'] = True + desired_caps['automationName'] = 'UiAutomator2' + desired_caps['setWebContentDebuggingEnabled'] = True return desired_caps @abstractmethod diff --git a/test/appium/tests/test_dapps_and_browsing.py b/test/appium/tests/test_dapps_and_browsing.py index dc24e79abf..89a6f2c257 100644 --- a/test/appium/tests/test_dapps_and_browsing.py +++ b/test/appium/tests/test_dapps_and_browsing.py @@ -4,7 +4,7 @@ from views.sign_in_view import SignInView @pytest.mark.all -class TestDappsAnsBrowsing(SingleDeviceTestCase): +class TestDAppsAndBrowsing(SingleDeviceTestCase): @pytest.mark.pr def test_browse_link_entering_url_in_dapp_view(self): @@ -13,12 +13,12 @@ class TestDappsAnsBrowsing(SingleDeviceTestCase): home_view = sign_in.get_home_view() start_new_chat = home_view.plus_button.click() start_new_chat.open_d_app_button.click() - start_new_chat.enter_url_editbox.send_keys('status.im') + start_new_chat.enter_url_editbox.set_value('status.im') start_new_chat.confirm() browsing_view = home_view.get_base_web_view() browsing_view.wait_for_d_aap_to_load() browsing_view.find_full_text('Status, the Ethereum discovery tool.') browsing_view.back_to_home_button.click() - assert home_view.first_chat_element_title.text == 'Status | The Mobile Ethereum Client' - home_view.swipe_and_delete_chat('Status | The Mobile Ethereum Client') + assert home_view.chat_name_text.text in 'Status | The Mobile Ethereum Client' + assert home_view.chat_url_text.text in 'https://status.im/' diff --git a/test/appium/tests/test_messaging.py b/test/appium/tests/test_messaging.py index 472bbd260b..18582abcca 100644 --- a/test/appium/tests/test_messaging.py +++ b/test/appium/tests/test_messaging.py @@ -62,6 +62,7 @@ class TestMessages(MultipleDeviceTestCase): device_2_chat.send_message_button.click() device_1_chat.wait_for_message_in_one_to_one_chat('%s %s' % (message_with_emoji, emoji_unicode_1), self.errors) + device_1_chat.chat_message_input.click() device_1_chat.send_as_keyevent(message_with_new_line) device_1_chat.send_message_button.click() device_2_chat.wait_for_message_in_one_to_one_chat(message_with_new_line, self.errors) @@ -73,13 +74,13 @@ class TestMessages(MultipleDeviceTestCase): if device_1_chat.element_by_text(url_message, 'button').is_element_present(): device_1_chat.element_by_text(url_message, 'button').click() web_view = device_1_chat.open_in_browser_button.click() - web_view.find_full_text('Browse, chat and make payments securely on the decentralized web.') + web_view.find_full_text('Status, the Ethereum discovery tool.') device_1_chat.back_button.click() device_1_chat.delete_chat(device_2_username[:25], self.errors) self.verify_no_errors() - @pytest.mark.pr + @pytest.mark.skip def test_group_chat_messages_and_delete_chat(self): self.create_drivers(3) @@ -168,6 +169,7 @@ class TestMessages(MultipleDeviceTestCase): for message in messages_to_send_2: chat_2.chat_message_input.send_keys(message) chat_2.send_message_button.click() + chat_2.chat_message_input.click() chat_2.send_as_keyevent(message_with_new_line) chat_2.send_message_button.click() chat_1.wait_for_messages(users[1], messages_to_receive_2, self.errors) diff --git a/test/appium/tests/test_sanity.py b/test/appium/tests/test_sanity.py index a6ee565b2f..df2c4d2e3b 100644 --- a/test/appium/tests/test_sanity.py +++ b/test/appium/tests/test_sanity.py @@ -41,7 +41,7 @@ class TestSanity(SingleDeviceTestCase): if basic_user['password'] in str(home_view.logcat): pytest.fail('Password in logcat!!!', pytrace=False) - @pytest.mark.gorup_chat + @pytest.mark.group_chat def test_group_chat_members(self): sign_in_view = SignInView(self.driver) sign_in_view.create_user() diff --git a/test/appium/tests/test_transaction.py b/test/appium/tests/test_transaction.py index 62de8568e6..f4e63b634b 100644 --- a/test/appium/tests/test_transaction.py +++ b/test/appium/tests/test_transaction.py @@ -62,7 +62,7 @@ class TestTransaction(SingleDeviceTestCase): send_transaction_view.sign_transaction_button.click() send_transaction_view.find_full_text('Wrong password', 20) - @pytest.mark.pr + @pytest.mark.skip def test_transaction_send_command_group_chat(self): recipient = transaction_users['A_USER'] sign_in_view = SignInView(self.driver) @@ -101,6 +101,7 @@ class TestTransaction(SingleDeviceTestCase): start_new_chat_view.open_d_app_button.click() auction_house = start_new_chat_view.auction_house_button.click() start_new_chat_view.open_button.click() + auction_house.wait_for_d_aap_to_load() auction_house.toggle_navigation_button.click() auction_house.new_auction_button.click() @@ -108,9 +109,12 @@ class TestTransaction(SingleDeviceTestCase): auction_name = time.strftime('%Y-%m-%d-%H-%M') auction_house.send_as_keyevent(auction_name) auction_house.register_name_button.click() + send_transaction_view = home_view.get_send_transaction_view() send_transaction_view.sign_transaction(sender['password']) + auction_house.find_full_text('You are the proud owner of the name: ' + auction_name, 120) + api_requests.verify_balance_is_updated(initial_balance, address) @pytest.mark.pr @@ -197,7 +201,7 @@ class TestTransaction(SingleDeviceTestCase): @pytest.mark.all class TestTransactions(MultipleDeviceTestCase): - @pytest.mark.pr + @pytest.mark.skip def test_send_eth_to_request_in_group_chat(self): recipient = transaction_users['E_USER'] sender = transaction_users['F_USER'] @@ -246,6 +250,11 @@ class TestTransactions(MultipleDeviceTestCase): device_2_chat = device_2_home.get_chat_view() amount = device_1_chat.get_unique_amount() one_to_one_chat_device_2 = device_2_chat.element_by_text_part(recipient['username'][:25], 'button') + try: + one_to_one_chat_device_2.wait_for_visibility_of_element(120) + except TimeoutException: + device_1_chat.chat_message_input.send_keys('ping') + device_1_chat.send_message_button.click() one_to_one_chat_device_2.click() device_1_chat.commands_button.click_until_presence_of_element(device_1_chat.request_command) device_1_chat.request_command.click() @@ -288,6 +297,7 @@ class TestTransactions(MultipleDeviceTestCase): wallet_view_device_1.send_request_button.click() device_2_chat = device_2_home.get_chat_view() one_to_one_chat_device_2 = device_2_chat.element_by_text_part(recipient['username'][:25], 'button') + one_to_one_chat_device_2.wait_for_visibility_of_element(120) one_to_one_chat_device_2.click() initial_balance_recipient = api_requests.get_balance(recipient['address']) request_button = device_2_chat.element_by_text_part('Requesting %s ETH' % amount, 'button') diff --git a/test/appium/views/base_element.py b/test/appium/views/base_element.py index af6467e9e2..d8948ef7ad 100644 --- a/test/appium/views/base_element.py +++ b/test/appium/views/base_element.py @@ -139,7 +139,7 @@ class BaseButton(BaseElement): def click_until_presence_of_element(self, desired_element, attempts=3): counter = 0 - while not desired_element.is_element_present() and counter <= attempts: + while not desired_element.is_element_present(1) and counter <= attempts: try: info('Tap on %s' % self.name) self.find_element().click() diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 691a83185a..6bb3d8ebc0 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -45,13 +45,13 @@ class DenyButton(BaseButton): class DeleteButton(BaseButton): def __init__(self, driver): super(DeleteButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='Delete']") + self.locator = self.Locator.xpath_selector("//*[@text='DELETE']") class YesButton(BaseButton): def __init__(self, driver): super(YesButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='Yes']") + self.locator = self.Locator.xpath_selector("//*[@text='YES']") class NoButton(BaseButton): @@ -69,7 +69,7 @@ class OkButton(BaseButton): class ContinueButton(BaseButton): def __init__(self, driver): super(ContinueButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='Continue']") + self.locator = self.Locator.xpath_selector("//*[@text='CONTINUE']") class HomeButton(BaseButton): @@ -128,12 +128,6 @@ class DoneButton(BaseButton): "//android.widget.TextView[@text='DONE']") -class DeleteButton(BaseButton): - def __init__(self, driver): - super(DeleteButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//android.widget.Button[@text='Delete']") - - class AppsButton(BaseButton): def __init__(self, driver): super(AppsButton, self).__init__(driver) @@ -189,10 +183,10 @@ class BaseView(object): } def accept_agreements(self): - for i in self.ok_button, self.continue_button: + for button in self.ok_button, self.continue_button: try: - i.wait_for_element(4) - i.click() + button.wait_for_element(15) + button.click() except (NoSuchElementException, TimeoutException): pass @@ -202,7 +196,7 @@ class BaseView(object): def confirm(self): info("Tap 'Confirm' on native keyboard") - self.driver.keyevent(66) + self.driver.press_keycode(66) def send_as_keyevent(self, string): keys = {'0': 7, '1': 8, '2': 9, '3': 10, '4': 11, '5': 12, '6': 13, '7': 14, '8': 15, '9': 16, @@ -216,7 +210,7 @@ class BaseView(object): for i in string: info("Tap '%s' on native keyboard" % i) time.sleep(1) - self.driver.keyevent(keys[i]) + self.driver.press_keycode(keys[i]) def find_full_text(self, text, wait_time=60): info("Looking for full text: '%s'" % text) diff --git a/test/appium/views/chat_view.py b/test/appium/views/chat_view.py index 2dad97c2a3..9e36923f51 100644 --- a/test/appium/views/chat_view.py +++ b/test/appium/views/chat_view.py @@ -14,15 +14,14 @@ class ChatMessageInput(BaseEditBox): class AddToContacts(BaseButton): def __init__(self, driver): super(AddToContacts, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='Add to contacts']") + self.locator = self.Locator.accessibility_id('add-to-contacts-button') class UserNameText(BaseText): def __init__(self, driver): super(UserNameText, self).__init__(driver) self.locator = \ - self.Locator.xpath_selector('(//android.view.ViewGroup[@content-desc="toolbar-back-button"]' - '//..//android.widget.TextView)[1]') + self.Locator.accessibility_id('chat-name-text') class TransactionPopupText(BaseText): @@ -34,19 +33,19 @@ class TransactionPopupText(BaseText): class SendCommand(BaseButton): def __init__(self, driver): super(SendCommand, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='/send']") + self.locator = self.Locator.accessibility_id('send-payment-button') class RequestCommand(BaseButton): def __init__(self, driver): super(RequestCommand, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='/request']") + self.locator = self.Locator.accessibility_id('request-payment-button') -class ChatOptions(BaseButton): +class ChatMenuButton(BaseButton): def __init__(self, driver): - super(ChatOptions, self).__init__(driver) - self.locator = self.Locator.xpath_selector('(//android.view.ViewGroup[@content-desc="icon"])[2]') + super(ChatMenuButton, self).__init__(driver) + self.locator = self.Locator.accessibility_id('chat-menu-button') class MembersButton(BaseButton): @@ -72,8 +71,7 @@ class ChatSettings(BaseButton): class UserOptions(BaseButton): def __init__(self, driver): super(UserOptions, self).__init__(driver) - self.locator = self.Locator.xpath_selector('//android.widget.ImageView[@content-desc="chat-icon"]' - '/../..//android.view.View') + self.locator = self.Locator.accessibility_id('options') class RemoveButton(BaseButton): @@ -85,15 +83,14 @@ class RemoveButton(BaseButton): class FirstRecipient(BaseButton): def __init__(self, driver): super(FirstRecipient, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='Choose recipient']/.." - "//android.widget.ImageView[@content-desc='chat-icon']") + self.locator = self.Locator.accessibility_id('contact-item') class MessageByUsername(BaseText): def __init__(self, driver, username): super(MessageByUsername, self).__init__(driver) - self.locator = self.Locator.xpath_selector('//*[@text="' + username + '"]' - '/following-sibling::android.widget.TextView') + self.locator = self.Locator.xpath_selector( + '//*[@text="%s"]/following-sibling::android.widget.TextView' % username) class MoreUsersButton(BaseButton): @@ -121,8 +118,7 @@ class OpenInBrowserButton(BaseButton): class CommandsButton(BaseButton): def __init__(self, driver): super(CommandsButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector( - '//*[@content-desc="chat-message-input"]/..//android.view.ViewGroup[@content-desc="icon"]') + self.locator = self.Locator.accessibility_id('chat-commands-button') class ViewProfileButton(BaseButton): @@ -143,7 +139,7 @@ class ChatView(BaseView): self.send_command = SendCommand(self.driver) self.request_command = RequestCommand(self.driver) - self.chat_options = ChatOptions(self.driver) + self.chat_options = ChatMenuButton(self.driver) self.members_button = MembersButton(self.driver) self.delete_chat_button = DeleteChatButton(self.driver) @@ -217,4 +213,4 @@ class ChatView(BaseView): from views.home_view import HomeView if not HomeView(self.driver).plus_button.is_element_present() or \ self.element_by_text(chat_name).is_element_present(): - errors.append('Chat was not deleted') \ No newline at end of file + errors.append('Chat was not deleted') diff --git a/test/appium/views/home_view.py b/test/appium/views/home_view.py index 5480d7456a..ddf7721a42 100644 --- a/test/appium/views/home_view.py +++ b/test/appium/views/home_view.py @@ -8,7 +8,7 @@ from views.base_view import BaseView class PlusButton(BaseButton): def __init__(self, driver): super(PlusButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector("//*[@text='+']") + self.locator = self.Locator.accessibility_id("new-chat-button") def navigate(self): from views.start_new_chat_view import StartNewChatView @@ -39,6 +39,7 @@ class ChatElement(BaseButton): @property def swipe_delete_button(self): + class DeleteButton(BaseButton): def __init__(self, driver, parent_locator: str): super(DeleteButton, self).__init__(driver) @@ -48,10 +49,16 @@ class ChatElement(BaseButton): return DeleteButton(self.driver, self.locator.value) -class FirstChatElementTitle(BaseText): +class ChatNameText(BaseText): def __init__(self, driver): - super(FirstChatElementTitle, self).__init__(driver) - self.locator = self.Locator.xpath_selector('(//android.widget.ScrollView//android.widget.TextView)[1]') + super(ChatNameText, self).__init__(driver) + self.locator = self.Locator.accessibility_id('chat-name-text') + + +class ChatUrlText(BaseText): + def __init__(self, driver): + super(ChatUrlText, self).__init__(driver) + self.locator = self.Locator.accessibility_id('chat-url-text') class HomeView(BaseView): @@ -60,7 +67,8 @@ class HomeView(BaseView): self.plus_button = PlusButton(self.driver) self.console_button = ConsoleButton(self.driver) - self.first_chat_element_title = FirstChatElementTitle(self.driver) + self.chat_name_text = ChatNameText(self.driver) + self.chat_url_text = ChatUrlText(self.driver) def wait_for_syncing_complete(self): info('Waiting for syncing complete:') @@ -123,5 +131,11 @@ class HomeView(BaseView): x, y = location['x'], location['y'] size = chat_element.find_element().size width, height = size['width'], size['height'] - self.driver.swipe(start_x=x + width / 2, start_y=y + height / 2, end_x=x, end_y=y + height / 2) + counter = 0 + while counter < 10: + self.driver.swipe(start_x=x + width / 2, start_y=y + height / 2, end_x=x, end_y=y + height / 2) + if chat_element.swipe_delete_button.is_element_present(): + break + time.sleep(10) + counter += 1 chat_element.swipe_delete_button.click() diff --git a/test/appium/views/profile_view.py b/test/appium/views/profile_view.py index 492c5bb846..3a32aacfb2 100644 --- a/test/appium/views/profile_view.py +++ b/test/appium/views/profile_view.py @@ -41,7 +41,7 @@ class OptionsButton(BaseButton): def __init__(self, driver): super(OptionsButton.UsernameInput, self).__init__(driver) - self.locator = self.Locator.xpath_selector('//android.widget.EditText') + self.locator = self.Locator.accessibility_id('username-input') class UserStatusInput(BaseEditBox): @@ -72,7 +72,7 @@ class LogoutButton(BaseButton): def __init__(self, driver): super(LogoutButton, self).__init__(driver) - self.locator = self.Locator.xpath_selector('//*[@text="Log out"]') + self.locator = self.Locator.accessibility_id('log-out-button') def click(self): self.scroll_to_element() diff --git a/test/appium/views/sign_in_view.py b/test/appium/views/sign_in_view.py index 92f3eb9e86..498f603bba 100644 --- a/test/appium/views/sign_in_view.py +++ b/test/appium/views/sign_in_view.py @@ -1,6 +1,7 @@ from tests import get_current_time from views.base_element import BaseButton, BaseEditBox from views.base_view import BaseView +import time class FirstAccountButton(BaseButton): @@ -70,6 +71,13 @@ class NameInput(BaseEditBox): self.locator = self.Locator.xpath_selector("//android.widget.TextView[@text='Name']") +class DonNotShare(BaseButton): + + def __init__(self, driver): + super(DonNotShare, self).__init__(driver) + self.locator = self.Locator.xpath_selector('//*[@text="NO, I DON%sT WANT TO SHARE"]' % "'") + + class SignInView(BaseView): def __init__(self, driver): @@ -87,8 +95,10 @@ class SignInView(BaseView): self.add_existing_account_button = AddExistingAccountButton(self.driver) self.confirm_password_input = ConfirmPasswordInput(self.driver) self.name_input = NameInput(self.driver) + self.do_not_share = DonNotShare(self.driver) def create_user(self): + time.sleep(30) # wait for "Shake to provide your feedback" popup to disappear, it's not possible to interact with the element self.create_account_button.click() self.password_input.set_value('qwerty1234') self.next_button.click() @@ -97,11 +107,15 @@ class SignInView(BaseView): self.name_input.wait_for_element(45) self.name_input.set_value('user_%s' % get_current_time()) self.next_button.click() - self.element_by_text("NO, I DON'T WANT TO SHARE").click() + self.do_not_share.wait_for_element(10) + self.do_not_share.click_until_presence_of_element(self.home_button) def recover_access(self, passphrase, password): + time.sleep(30) # wait for "Shake to provide your feedback" popup to disappear, it's not possible to interact with the element recover_access_view = self.i_have_account_button.click() recover_access_view.passphrase_input.set_value(passphrase) recover_access_view.password_input.click() recover_access_view.password_input.set_value(password) recover_access_view.sign_in_button.click() + self.do_not_share.wait_for_element(10) + self.do_not_share.click_until_presence_of_element(self.home_button) diff --git a/test/appium/views/start_new_chat_view.py b/test/appium/views/start_new_chat_view.py index f834ceaf68..0c26f90f0c 100644 --- a/test/appium/views/start_new_chat_view.py +++ b/test/appium/views/start_new_chat_view.py @@ -28,9 +28,9 @@ class ChatNameEditBox(BaseEditBox): self.locator = self.Locator.accessibility_id('chat-name-input') -class OpenDAapButton(BaseButton): +class OpenDAppButton(BaseButton): def __init__(self, driver): - super(OpenDAapButton, self).__init__(driver) + super(OpenDAppButton, self).__init__(driver) self.locator = self.Locator.accessibility_id('open-dapp-button') @@ -66,7 +66,7 @@ class StartNewChatView(ContactsView): self.new_group_chat_button = NewGroupChatButton(self.driver) self.join_public_chat_button = JoinPublicChatButton(self.driver) - self.open_d_app_button = OpenDAapButton(self.driver) + self.open_d_app_button = OpenDAppButton(self.driver) self.open_button = OpenButton(self.driver) self.chat_name_editbox = ChatNameEditBox(self.driver) diff --git a/test/appium/views/web_views/auction_house.py b/test/appium/views/web_views/auction_house.py index a20cb2dc57..1b3dc995ab 100644 --- a/test/appium/views/web_views/auction_house.py +++ b/test/appium/views/web_views/auction_house.py @@ -5,12 +5,12 @@ class ToggleNavigationButton(BaseButton): def __init__(self, driver): super(ToggleNavigationButton, self).__init__(driver) - self.locator = self.Locator.accessibility_id('Toggle navigation ') + self.locator = self.Locator.xpath_selector("//*[@text='Toggle navigation ']") class NewAuctionButton(BaseButton): def __init__(self, driver): super(ToggleNavigationButton.NewAuctionButton, self).__init__(driver) - self.locator = self.Locator.accessibility_id('New Auction') + self.locator = self.Locator.xpath_selector("//*[@text='New Auction']") class ReserveAssetName(BaseElement): @@ -20,13 +20,20 @@ class ReserveAssetName(BaseElement): def __init__(self, driver): super(ReserveAssetName.NameToReserveInput, self).__init__(driver) self.locator = self.Locator.xpath_selector( - '(//android.widget.EditText[@content-desc="eg MyFamousWallet.eth"])[1]') + '(//*[@text="Name To Reserve:"])[2]') class RegisterNameButton(BaseButton): def __init__(self, driver): super(ReserveAssetName.RegisterNameButton, self).__init__(driver) - self.locator = self.Locator.accessibility_id('Register Name') + self.locator = self.Locator.xpath_selector('//*[@text="Register Name"]') + + +class AssetContract(BaseElement): + + def __init__(self, driver): + super(AssetContract, self).__init__(driver) + self.locator = self.Locator.xpath_selector('//*[@text="Asset contract"]') class AuctionHouseWebView(BaseWebView): @@ -40,3 +47,4 @@ class AuctionHouseWebView(BaseWebView): self.name_to_reserve_input = ReserveAssetName.NameToReserveInput(self.driver) self.register_name_button = ReserveAssetName.RegisterNameButton(self.driver) + self.asset_contract = AssetContract(self.driver) diff --git a/test/appium/views/web_views/base_web_view.py b/test/appium/views/web_views/base_web_view.py index 824ceb9d37..8bfa21f1fd 100644 --- a/test/appium/views/web_views/base_web_view.py +++ b/test/appium/views/web_views/base_web_view.py @@ -40,8 +40,3 @@ class BaseWebView(BaseView): counter += 1 if counter > wait_time: pytest.fail("Page is not loaded during %s seconds" % wait_time) - - def find_full_text(self, text, wait_time=60): - element = BaseElement(self.driver) - element.locator = element.Locator.xpath_selector('//*[@content-desc="' + text + '"]') - return element.wait_for_element(wait_time)