diff --git a/src/controls/html-element.ts b/src/controls/html-element.ts
index ba97c1e..f7b6e7a 100644
--- a/src/controls/html-element.ts
+++ b/src/controls/html-element.ts
@@ -51,19 +51,22 @@ export class HTMLElement implements IHTMLElement {
/**
*
* Schedules a command to click on this element
+ * @return {*} {Promise}
+ * @memberof HTMLElement
+ */
+ async click(): Promise {
+ return await this.callIfMethodExists('click');
+ }
+ /**
+ *
+ * Schedules a command to click on this element and return a new page object
* @template TPage
- * @param {new () => TPage} [page]
- * @return {*} {Promise}
+ * @param {new () => TPage} page
+ * @return {*} {Promise}
* @memberof HTMLElement
*/
- click(): Promise;
- click(page: new () => TPage): Promise;
- async click(page?: new () => TPage): Promise {
- if (page) {
- return await this.callIfMethodExists('click', [page]);
- } else {
- return await this.callIfMethodExists('click');
- }
+ async clickRedirectsTo(page: new () => TPage): Promise {
+ return await this.callIfMethodExists('clickRedirectsTo', [page]);
}
/**
*
diff --git a/src/flask/pages/onboarding/experimental-area.ts b/src/flask/pages/onboarding/experimental-area.ts
index 4e98f69..52ed105 100644
--- a/src/flask/pages/onboarding/experimental-area.ts
+++ b/src/flask/pages/onboarding/experimental-area.ts
@@ -27,6 +27,6 @@ export class ExperimentalArea extends PageObject {
* @memberof ExperimentalArea
*/
async iAccept(): Promise {
- return await this.iAcceptButton.click(Welcome);
+ return await this.iAcceptButton.clickRedirectsTo(Welcome);
}
}
diff --git a/src/interface/controls/html-element.ts b/src/interface/controls/html-element.ts
index 506432c..8140988 100644
--- a/src/interface/controls/html-element.ts
+++ b/src/interface/controls/html-element.ts
@@ -3,8 +3,7 @@ import { IConfirmation } from '../wallet/confirmation';
export interface IHTMLElement {
click(): Promise;
- click(page: new () => TPage): Promise;
- click(page?: new () => TPage): Promise;
+ clickRedirectsTo(page: new () => TPage): Promise;
clickAndSwitchToWindow(page: new () => TPage): Promise;
clickAndWait(duration: number): Promise;
getAttribute(attribute: string): Promise;
diff --git a/src/metamask/pages/onboarding/confirm-recovery-phrase.ts b/src/metamask/pages/onboarding/confirm-recovery-phrase.ts
index 059ad40..d5d0bcb 100644
--- a/src/metamask/pages/onboarding/confirm-recovery-phrase.ts
+++ b/src/metamask/pages/onboarding/confirm-recovery-phrase.ts
@@ -60,6 +60,6 @@ export class ConfirmRecoveryPhrase extends PageObject {
*/
async confirm(): Promise {
await this.confirmButton.click();
- return await this.modalButton.click(Metametrics);
+ return await this.modalButton.clickRedirectsTo(Metametrics);
}
}
diff --git a/src/metamask/pages/onboarding/create-password.ts b/src/metamask/pages/onboarding/create-password.ts
index 5df1660..b8c802a 100644
--- a/src/metamask/pages/onboarding/create-password.ts
+++ b/src/metamask/pages/onboarding/create-password.ts
@@ -65,7 +65,7 @@ export class CreatePassword extends PageObject {
* @memberof CreatePassword
*/
async importWallet(): Promise {
- return await this.submitButton.click(Metametrics);
+ return await this.submitButton.clickRedirectsTo(Metametrics);
}
/**
*
@@ -74,6 +74,6 @@ export class CreatePassword extends PageObject {
* @memberof CreatePassword
*/
async createWallet(): Promise {
- return await this.submitButton.click(ReviewRecoveryPhrase);
+ return await this.submitButton.clickRedirectsTo(ReviewRecoveryPhrase);
}
}
diff --git a/src/metamask/pages/onboarding/import-with-recory-phrase.ts b/src/metamask/pages/onboarding/import-with-recory-phrase.ts
index de28080..d08a909 100644
--- a/src/metamask/pages/onboarding/import-with-recory-phrase.ts
+++ b/src/metamask/pages/onboarding/import-with-recory-phrase.ts
@@ -46,6 +46,6 @@ export class ImportWithRecoveryPhrase extends PageObject {
* @memberof ImportWithRecoveryPhrase
*/
async confirmSecretRecoveryPhrase(): Promise {
- return await this.confirmButton.click(CreatePassword);
+ return await this.confirmButton.clickRedirectsTo(CreatePassword);
}
}
diff --git a/src/metamask/pages/onboarding/metametrics.ts b/src/metamask/pages/onboarding/metametrics.ts
index 6de103e..e044e0b 100644
--- a/src/metamask/pages/onboarding/metametrics.ts
+++ b/src/metamask/pages/onboarding/metametrics.ts
@@ -27,6 +27,6 @@ export class Metametrics extends PageObject {
* @memberof Metametrics
*/
async continue(): Promise {
- return await this.iAgreeButton.click(Completion);
+ return await this.iAgreeButton.clickRedirectsTo(Completion);
}
}
diff --git a/src/metamask/pages/onboarding/review-recovery-phrase.ts b/src/metamask/pages/onboarding/review-recovery-phrase.ts
index c6f6efc..e715ab5 100644
--- a/src/metamask/pages/onboarding/review-recovery-phrase.ts
+++ b/src/metamask/pages/onboarding/review-recovery-phrase.ts
@@ -39,6 +39,6 @@ export class ReviewRecoveryPhrase extends PageObject {
* @memberof ReviewRecoveryPhrase
*/
async next(): Promise {
- return await this.nextButton.click(ConfirmRecoveryPhrase);
+ return await this.nextButton.clickRedirectsTo(ConfirmRecoveryPhrase);
}
}
diff --git a/src/metamask/pages/onboarding/welcome.ts b/src/metamask/pages/onboarding/welcome.ts
index e20df13..582c8bb 100644
--- a/src/metamask/pages/onboarding/welcome.ts
+++ b/src/metamask/pages/onboarding/welcome.ts
@@ -37,7 +37,7 @@ export class Welcome extends PageObject {
*/
async createANewWallet(): Promise {
await this.createANewWalletButton.click();
- return await this.createWithSRPButton.click(CreatePassword);
+ return await this.createWithSRPButton.clickRedirectsTo(CreatePassword);
}
/**
*
@@ -47,6 +47,6 @@ export class Welcome extends PageObject {
*/
async iHaveAnExistingWallet(): Promise {
await this.importAnExistingWalletButton.click();
- return await this.importWithSRPButton.click(ImportWithRecoveryPhrase);
+ return await this.importWithSRPButton.clickRedirectsTo(ImportWithRecoveryPhrase);
}
}
diff --git a/src/playwright/html-element.ts b/src/playwright/html-element.ts
index 84f31bf..f107e2d 100644
--- a/src/playwright/html-element.ts
+++ b/src/playwright/html-element.ts
@@ -31,11 +31,13 @@ export class PlaywrightHTMLElement implements IHTMLElement {
return locator;
}
- async click(page?: new () => TPage): Promise {
+ async click(): Promise {
await this.webElement.click({ timeout: this.timeout });
- if (page) {
- return await DappDriver.getPage(page);
- }
+ }
+
+ async clickRedirectsTo(page: new () => TPage): Promise {
+ await this.webElement.click({ timeout: this.timeout });
+ return await DappDriver.getPage(page);
}
async clickAndWait(duration: number): Promise {
diff --git a/src/rainbow/pages/onboarding/create-password.ts b/src/rainbow/pages/onboarding/create-password.ts
index e759308..5cf5d4d 100644
--- a/src/rainbow/pages/onboarding/create-password.ts
+++ b/src/rainbow/pages/onboarding/create-password.ts
@@ -53,6 +53,6 @@ export class CreatePassword extends PageObject {
* @memberof CreatePassword
*/
async setPassword(): Promise {
- return await this.setPasswordButton.click(Ready);
+ return await this.setPasswordButton.clickRedirectsTo(Ready);
}
}
diff --git a/src/rainbow/pages/onboarding/import-or-connect.ts b/src/rainbow/pages/onboarding/import-or-connect.ts
index b00e220..07af2de 100644
--- a/src/rainbow/pages/onboarding/import-or-connect.ts
+++ b/src/rainbow/pages/onboarding/import-or-connect.ts
@@ -27,6 +27,6 @@ export class ImportOrConnect extends PageObject {
* @memberof ImportOrConnect
*/
async importWithASecretRecoveryPhraseOrPrivateKey(): Promise {
- return await this.importWithASRPOrPKButton.click(Import);
+ return await this.importWithASRPOrPKButton.clickRedirectsTo(Import);
}
}
diff --git a/src/rainbow/pages/onboarding/import-seed.ts b/src/rainbow/pages/onboarding/import-seed.ts
index 4ebfe04..25754d0 100644
--- a/src/rainbow/pages/onboarding/import-seed.ts
+++ b/src/rainbow/pages/onboarding/import-seed.ts
@@ -43,6 +43,6 @@ export class ImportSeed extends PageObject {
* @memberof ImportSeed
*/
async importWalletGroup(): Promise {
- return await this.importWalletsButton.click(ImportSelect);
+ return await this.importWalletsButton.clickRedirectsTo(ImportSelect);
}
}
diff --git a/src/rainbow/pages/onboarding/import-select.ts b/src/rainbow/pages/onboarding/import-select.ts
index f8d4571..606076e 100644
--- a/src/rainbow/pages/onboarding/import-select.ts
+++ b/src/rainbow/pages/onboarding/import-select.ts
@@ -27,6 +27,6 @@ export class ImportSelect extends PageObject {
* @memberof ImportSelect
*/
async importWalletGroup(): Promise {
- return await this.addWalletsButton.click(CreatePassword);
+ return await this.addWalletsButton.clickRedirectsTo(CreatePassword);
}
}
diff --git a/src/rainbow/pages/onboarding/import.ts b/src/rainbow/pages/onboarding/import.ts
index 13af092..69160be 100644
--- a/src/rainbow/pages/onboarding/import.ts
+++ b/src/rainbow/pages/onboarding/import.ts
@@ -27,6 +27,6 @@ export class Import extends PageObject {
* @memberof Import
*/
async importFromASecretRecoveryPhrase(): Promise {
- return await this.importFromASRPButton.click(ImportSeed);
+ return await this.importFromASRPButton.clickRedirectsTo(ImportSeed);
}
}
diff --git a/src/rainbow/pages/onboarding/reveal-seed.ts b/src/rainbow/pages/onboarding/reveal-seed.ts
index 8650ff9..b89dcad 100644
--- a/src/rainbow/pages/onboarding/reveal-seed.ts
+++ b/src/rainbow/pages/onboarding/reveal-seed.ts
@@ -43,6 +43,6 @@ export class RevealSeed extends PageObject {
* @memberof RevealSeed
*/
async iveSavedTheseWords(): Promise {
- return await this.iveSavedTheseWordsButton.click(SeedVerify);
+ return await this.iveSavedTheseWordsButton.clickRedirectsTo(SeedVerify);
}
}
diff --git a/src/rainbow/pages/onboarding/seed-backup.ts b/src/rainbow/pages/onboarding/seed-backup.ts
index 1ecb400..34c385f 100644
--- a/src/rainbow/pages/onboarding/seed-backup.ts
+++ b/src/rainbow/pages/onboarding/seed-backup.ts
@@ -27,6 +27,6 @@ export class SeedBackup extends PageObject {
* @memberof SeedBackup
*/
async revealYourRecoveryPhrase(): Promise {
- return await this.revealYourRecoveryPhraseButton.click(RevealSeed);
+ return await this.revealYourRecoveryPhraseButton.clickRedirectsTo(RevealSeed);
}
}
diff --git a/src/rainbow/pages/onboarding/welcome.ts b/src/rainbow/pages/onboarding/welcome.ts
index af5547c..84ef7d9 100644
--- a/src/rainbow/pages/onboarding/welcome.ts
+++ b/src/rainbow/pages/onboarding/welcome.ts
@@ -30,7 +30,7 @@ export class Welcome extends PageObject {
* @memberof Welcome
*/
async createANewWallet(): Promise {
- return await this.createANewWalletButton.click(SeedBackup);
+ return await this.createANewWalletButton.clickRedirectsTo(SeedBackup);
}
/**
*
@@ -39,6 +39,6 @@ export class Welcome extends PageObject {
* @memberof Welcome
*/
async importOrConnectAWallet(): Promise {
- return await this.importOrConnectAWalletButton.click(ImportOrConnect);
+ return await this.importOrConnectAWalletButton.clickRedirectsTo(ImportOrConnect);
}
}
diff --git a/src/webdriver/html-element.ts b/src/webdriver/html-element.ts
index 8916345..0ac25c3 100644
--- a/src/webdriver/html-element.ts
+++ b/src/webdriver/html-element.ts
@@ -42,7 +42,7 @@ export class WebDriverHTMLElement implements IHTMLElement {
await this.webElement.click();
}
- async click(page?: new () => TPage): Promise {
+ async click(): Promise {
try {
await this.hardClick();
} catch (err) {
@@ -51,9 +51,11 @@ export class WebDriverHTMLElement implements IHTMLElement {
await this.hardClick();
}
}
- if (page) {
- return await DappDriver.getPage(page);
- }
+ }
+
+ async clickRedirectsTo(page: new () => TPage): Promise {
+ await this.click();
+ return await DappDriver.getPage(page);
}
async clickAndWait(duration: number): Promise {
diff --git a/src/zerion/pages/onboarding/backup-recovery-phrase.ts b/src/zerion/pages/onboarding/backup-recovery-phrase.ts
index 84997a9..7cb1335 100644
--- a/src/zerion/pages/onboarding/backup-recovery-phrase.ts
+++ b/src/zerion/pages/onboarding/backup-recovery-phrase.ts
@@ -52,6 +52,6 @@ export class BackUpRecoveryPhrase extends PageObject {
* @memberof BackUpRecoveryPhrase
*/
async verify(): Promise {
- return await this.verifyBackUpButton.click(Verify);
+ return await this.verifyBackUpButton.clickRedirectsTo(Verify);
}
}
diff --git a/src/zerion/pages/onboarding/backup.ts b/src/zerion/pages/onboarding/backup.ts
index 9c39c12..06e05f1 100644
--- a/src/zerion/pages/onboarding/backup.ts
+++ b/src/zerion/pages/onboarding/backup.ts
@@ -39,6 +39,6 @@ export class BackUp extends PageObject {
* @memberof BackUp
*/
async backUpNow(): Promise {
- return await this.backUpNowButton.click(BackUpRecoveryPhrase);
+ return await this.backUpNowButton.clickRedirectsTo(BackUpRecoveryPhrase);
}
}
diff --git a/src/zerion/pages/onboarding/confirm-password.ts b/src/zerion/pages/onboarding/confirm-password.ts
index f859735..6aa3cc9 100644
--- a/src/zerion/pages/onboarding/confirm-password.ts
+++ b/src/zerion/pages/onboarding/confirm-password.ts
@@ -41,6 +41,6 @@ export class ConfirmPassword extends PageObject {
* @memberof ConfirmPassword
*/
async setPassword(page: new () => TPage): Promise {
- return await this.setPasswordButton.click(page);
+ return await this.setPasswordButton.clickRedirectsTo(page);
}
}
diff --git a/src/zerion/pages/onboarding/create.ts b/src/zerion/pages/onboarding/create.ts
index d70da3d..fadabb4 100644
--- a/src/zerion/pages/onboarding/create.ts
+++ b/src/zerion/pages/onboarding/create.ts
@@ -27,6 +27,6 @@ export class Create extends PageObject {
* @memberof Create
*/
async create(): Promise {
- return await this.createButton.click(BackUp);
+ return await this.createButton.clickRedirectsTo(BackUp);
}
}
diff --git a/src/zerion/pages/onboarding/import-wallet.ts b/src/zerion/pages/onboarding/import-wallet.ts
index 1ebfcaa..f6d4f97 100644
--- a/src/zerion/pages/onboarding/import-wallet.ts
+++ b/src/zerion/pages/onboarding/import-wallet.ts
@@ -27,6 +27,6 @@ export class ImportWallet extends PageObject {
* @memberof ImportWallet
*/
async importRecoveryPhrase(): Promise {
- return await this.importRecoveryPhraseButton.click(RecoveryPhrase);
+ return await this.importRecoveryPhraseButton.clickRedirectsTo(RecoveryPhrase);
}
}
diff --git a/src/zerion/pages/onboarding/password.ts b/src/zerion/pages/onboarding/password.ts
index 14ed124..a0b6ae4 100644
--- a/src/zerion/pages/onboarding/password.ts
+++ b/src/zerion/pages/onboarding/password.ts
@@ -40,6 +40,6 @@ export class Password extends PageObject {
* @memberof Password
*/
async confirmPassword(): Promise {
- return await this.confirmButton.click(ConfirmPassword);
+ return await this.confirmButton.clickRedirectsTo(ConfirmPassword);
}
}
diff --git a/src/zerion/pages/onboarding/recovery-phrase.ts b/src/zerion/pages/onboarding/recovery-phrase.ts
index a2d6b4b..a331260 100644
--- a/src/zerion/pages/onboarding/recovery-phrase.ts
+++ b/src/zerion/pages/onboarding/recovery-phrase.ts
@@ -41,6 +41,6 @@ export class RecoveryPhrase extends PageObject {
* @memberof RecoveryPhrase
*/
async confirmSecretRecoveryPhrase(): Promise {
- return await this.importWalletButton.click(SelectWallets);
+ return await this.importWalletButton.clickRedirectsTo(SelectWallets);
}
}
diff --git a/src/zerion/pages/onboarding/select-wallets.ts b/src/zerion/pages/onboarding/select-wallets.ts
index 0a57d9d..b71f25f 100644
--- a/src/zerion/pages/onboarding/select-wallets.ts
+++ b/src/zerion/pages/onboarding/select-wallets.ts
@@ -29,6 +29,6 @@ export class SelectWallets extends PageObject {
* @memberof SelectWallets
*/
async continue(): Promise {
- return await this.continueButton.click(Password);
+ return await this.continueButton.clickRedirectsTo(Password);
}
}
diff --git a/src/zerion/pages/onboarding/verify.ts b/src/zerion/pages/onboarding/verify.ts
index c7d7f11..0cebd94 100644
--- a/src/zerion/pages/onboarding/verify.ts
+++ b/src/zerion/pages/onboarding/verify.ts
@@ -51,6 +51,6 @@ export class Verify extends PageObject {
* @memberof Verify
*/
async verify(): Promise {
- return await this.verifyButton.click(Success);
+ return await this.verifyButton.clickRedirectsTo(Success);
}
}
diff --git a/src/zerion/pages/onboarding/welcome.ts b/src/zerion/pages/onboarding/welcome.ts
index 44864f2..5b68b3a 100644
--- a/src/zerion/pages/onboarding/welcome.ts
+++ b/src/zerion/pages/onboarding/welcome.ts
@@ -30,7 +30,7 @@ export class Welcome extends PageObject {
* @memberof Welcome
*/
async createNewWallet(): Promise {
- return await this.createNewWalletButton.click(Password);
+ return await this.createNewWalletButton.clickRedirectsTo(Password);
}
/**
*
@@ -39,6 +39,6 @@ export class Welcome extends PageObject {
* @memberof Welcome
*/
async importExistingWallet(): Promise {
- return await this.importExistingWalletButton.click(ImportWallet);
+ return await this.importExistingWalletButton.clickRedirectsTo(ImportWallet);
}
}