parent
f8e73f8538
commit
b2f5146a8a
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/'
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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')
|
||||
errors.append('Chat was not deleted')
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue