@@ -48,18 +48,18 @@ def click(self):
4848
4949class RecoveryPhraseTable (Text ):
5050 def __init__ (self , driver ):
51- super ().__init__ (driver , translation_id = "your -recovery-phrase" ,
52- suffix = "/following-sibling::android.view.ViewGroup[1] /android.widget.TextView" )
51+ super ().__init__ (driver , translation_id = "backup -recovery-phrase" ,
52+ suffix = "/following-sibling::android.view.ViewGroup[2]/ /android.widget.TextView" )
5353
5454
5555class RecoveryPhraseWordNumberText (Text ):
5656 def __init__ (self , driver ):
57- super ().__init__ (driver , xpath = "//*[contains(@text,'#')] " )
57+ super ().__init__ (driver , xpath = "//*[@content-desc='number-container']/android.widget.TextView " )
5858
5959 @property
6060 def number (self ):
6161 time .sleep (1 )
62- return int (self .find_element ().text . split ( '#' )[ 1 ] )
62+ return int (self .find_element ().text )
6363
6464
6565class HelpButton (Button ):
@@ -117,8 +117,6 @@ def __init__(self, driver):
117117
118118 self .recovery_phrase_table = RecoveryPhraseTable (self .driver )
119119 self .recovery_phrase_word_number = RecoveryPhraseWordNumberText (self .driver )
120- self .recovery_phrase_next_button = Button (self .driver , accessibility_id = "Next, icon" )
121- self .recovery_phrase_word_input = EditBox (self .driver , xpath = "//android.widget.EditText" )
122120
123121 # Notifications
124122 self .profile_notifications_button = Button (self .driver ,
@@ -219,20 +217,35 @@ def get_recovery_phrase(self):
219217 text = [i .text for i in self .recovery_phrase_table .find_elements ()]
220218 return dict (zip (map (int , text [::2 ]), text [1 ::2 ]))
221219
220+ def get_correct_word_button (self , word : str ):
221+ return Button (self .driver , accessibility_id = word )
222+
223+ def get_incorrect_word_button (self , word : str ):
224+ try :
225+ button = Button (self .driver ,
226+ xpath = "//*[@content-desc='%s']/following-sibling::android.view.ViewGroup" % word )
227+ button .find_element ()
228+ except NoSuchElementException :
229+ button = Button (self .driver ,
230+ xpath = "//*[@content-desc='%s']/preceding-sibling::*/*/android.widget.TextView" % word )
231+ return button
232+
233+ def fill_recovery_phrase_checking_words (self , recovery_phrase : dict ):
234+ for _ in range (4 ):
235+ word_number = self .recovery_phrase_word_number .number
236+ self .get_correct_word_button (recovery_phrase [word_number ]).click ()
237+
222238 def backup_recovery_phrase (self ):
223239 self .just_fyi ("Back up recovery phrase" )
224240 self .backup_recovery_phrase_button .click ()
225- self .ok_continue_button .click ()
241+ for checkbox in self .checkbox_button .find_elements ():
242+ checkbox .click ()
243+ self .button_one .click ()
226244 recovery_phrase = self .get_recovery_phrase ()
227- self .recovery_phrase_next_button .click ()
228- word_number = self .recovery_phrase_word_number .number
229- self .recovery_phrase_word_input .send_keys (recovery_phrase [word_number ])
230- self .recovery_phrase_next_button .click ()
231- word_number_1 = self .recovery_phrase_word_number .number
232- self .recovery_phrase_word_input .send_keys (recovery_phrase [word_number_1 ])
233- self .done_button .click ()
234- self .yes_button .click ()
235- self .ok_got_it_button .click ()
245+ self .button_one .click ()
246+ self .fill_recovery_phrase_checking_words (recovery_phrase )
247+ self .checkbox_button .click ()
248+ self .button_one .find_elements ()[- 1 ].click ()
236249 return ' ' .join (recovery_phrase .values ())
237250
238251 def edit_profile_picture (self , image_index : int , update_by = "Gallery" ):
@@ -342,8 +355,13 @@ def __init__(self, driver, account_name):
342355 return KeyPairAccountElement (self .driver , account_name )
343356
344357 def get_missing_key_pair_by_name (self , key_pair_name : str ):
345- return BaseElement (self .driver ,
346- xpath = "//*[@content-desc='missing-keypair-item']//*[@text='%s']" % key_pair_name )
358+ class MissingKeyPairElement (BaseElement ):
359+ def __init__ (self , driver , key_pair_name ):
360+ locator = "//*[@content-desc='missing-keypair-item']//*[@text='%s']" % key_pair_name
361+ super ().__init__ (driver , xpath = locator )
362+ self .options_button = Button (driver , xpath = locator + "/../..//*[@content-desc='options-button']" )
363+
364+ return MissingKeyPairElement (self .driver , key_pair_name )
347365
348366 def turn_new_contact_requests_toggle (self , state : str = 'on' ):
349367 self .profile_messages_button .click ()
0 commit comments