public class ActivationPage : BasePage { public ActivationPage(AppiumDriver driver) : base(driver) { } [FindsByAndroidUIAutomator(ID = "niPesel")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement PeselContainer; [FindsByAndroidUIAutomator(XPath = "//android.widget.EditText")] [FindsByIOSUIAutomation(Accessibility = "")] public IList PeselFields; [FindsByAndroidUIAutomator(ID = "niPhoneNumber")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement PhoneContainer; [FindsByAndroidUIAutomator(XPath = "//android.widget.EditText")] [FindsByIOSUIAutomation(Accessibility = "")] public IList PhoneFields; [FindsByAndroidUIAutomator(ID = "cbApplicationTerms")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement TermsCheckbox; [FindsByAndroidUIAutomator(XPath = "//android.widget.Button[@text = 'Dalej']")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement NextButton; [FindsByAndroidUIAutomator(XPath = "//android.widget.EditText")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement IdField; [FindsByAndroidUIAutomator(ID = "etSmsCode")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement SmsField; [FindsByAndroidUIAutomator(ID = "etPassword")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement PinField; [FindsByAndroidUIAutomator(ID = "tvConfirmSkip")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement GoToLoginPageButton; [FindsByAndroidUIAutomator(XPath = "//android.widget.TextView[@text = 'Title']")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement Title; [FindsByAndroidUIAutomator(ID = "tvApplicationTermsText")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement TermsText; [FindsByAndroidUIAutomator(ID = "tvActivationQuestionHint")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement HintSection; [FindsByAndroidUIAutomator(ID = "vProgress")] [FindsByIOSUIAutomation(Accessibility = "")] public IMobileElement ProgressBar; public LoginPage Activate(string phoneNumber, string pesel, string idNumber, string smsCode, string pin) { FillFirstStep(phoneNumber); FillSecondStep(pesel); FillThirdStep(idNumber); FillFourthStep(smsCode); FillFivethStep(pin); GoToLoginPageButton.Click(); return new LoginPage(driver); } public void FillFirstStep(string phoneNumber) { WaitForElementVisible(PhoneContainer); InputDigitsToNumberField(PhoneFields, phoneNumber); WaitForElementAndClick(TermsCheckbox); WaitForElementAndClick(NextButton); } public void FillSecondStep(string pesel) { WaitForElementVisible(PeselContainer); InputDigitsToNumberField(PeselFields, pesel); WaitForElementAndClick(NextButton); } public void FillThirdStep(string idNumber) { WaitForElementVisible(IdField); IdField.SendKeys(idNumber); WaitForElementAndClick(NextButton); } public void FillFourthStep(string smsCode) { WaitForElementVisible(SmsField); SmsField.SendKeys(smsCode); WaitForElementAndClick(NextButton); } public void FillFivethStep(string pin) { WaitForElementVisible(PinField); PinField.SendKeys(pin); WaitForElementAndClick(NextButton); } public void InputDigitsToNumberField(IList root, string number) { char[] digits = number.ToCharArray(); var i = 0; foreach (var element in root) { var digit = digits[i].ToString(); wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//android.widget.EditText"))); element.SendKeys(digit); i++; } } } }