From b3839625839b4e7f674e81523a8270de807625fc Mon Sep 17 00:00:00 2001 From: Simon Kurtz Date: Mon, 21 May 2018 11:07:35 -0400 Subject: [PATCH 1/5] Add click and scroll abstractions --- lib/browser.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/browser.ts b/lib/browser.ts index 82807ae3b..60b16b58e 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -1203,4 +1203,29 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { return !!wdpromise.ControlFlow; } } + + /** + * Clicks on the specified element, provided it's visible. + * + * @template T + * @param {ElementFinder} element + * @returns {wdpromise.Promise} + * @memberof ProtractorBrowser + */ + click(element: ElementFinder): wdpromise.Promise { + return this.driver.executeScript('argments[0].click();', element); + } + + /** + * Scrolls to the specified element. + * + * @template T + * @param {ElementFinder} element + * @returns {wdpromise.Promise} + * @memberof ProtractorBrowser + */ + scroll(element: ElementFinder): wdpromise.Promise { + return this.driver.executeScript('arguments[0].scrollIntoView();', element); + } + } From ebf11f1af0d560108e4b4344157c7f15b59e816f Mon Sep 17 00:00:00 2001 From: Simon Kurtz Date: Mon, 21 May 2018 11:10:05 -0400 Subject: [PATCH 2/5] Rename scroll to scrollIntoView --- lib/browser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/browser.ts b/lib/browser.ts index 60b16b58e..5e5cd7af4 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -1224,7 +1224,7 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { * @returns {wdpromise.Promise} * @memberof ProtractorBrowser */ - scroll(element: ElementFinder): wdpromise.Promise { + scrollIntoView(element: ElementFinder): wdpromise.Promise { return this.driver.executeScript('arguments[0].scrollIntoView();', element); } From 97a1ca6be7c7104c3c36615e29da9d05edb78ca3 Mon Sep 17 00:00:00 2001 From: Simon Kurtz Date: Mon, 21 May 2018 11:22:33 -0400 Subject: [PATCH 3/5] Run clang-format --- lib/browser.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/browser.ts b/lib/browser.ts index 5e5cd7af4..3b07bfe3c 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -1206,10 +1206,10 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { /** * Clicks on the specified element, provided it's visible. - * - * @template T - * @param {ElementFinder} element - * @returns {wdpromise.Promise} + * + * @template T + * @param {ElementFinder} element + * @returns {wdpromise.Promise} * @memberof ProtractorBrowser */ click(element: ElementFinder): wdpromise.Promise { @@ -1218,14 +1218,13 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { /** * Scrolls to the specified element. - * - * @template T - * @param {ElementFinder} element - * @returns {wdpromise.Promise} + * + * @template T + * @param {ElementFinder} element + * @returns {wdpromise.Promise} * @memberof ProtractorBrowser */ scrollIntoView(element: ElementFinder): wdpromise.Promise { return this.driver.executeScript('arguments[0].scrollIntoView();', element); } - } From b79fd5bb57c50d33d13fbf6ecdb73ba13b655470 Mon Sep 17 00:00:00 2001 From: Simon Kurtz Date: Wed, 30 May 2018 14:48:25 -0400 Subject: [PATCH 4/5] Add scrollIntoView overloads --- lib/browser.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/browser.ts b/lib/browser.ts index 3b07bfe3c..f0776bac6 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -1224,7 +1224,15 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { * @returns {wdpromise.Promise} * @memberof ProtractorBrowser */ - scrollIntoView(element: ElementFinder): wdpromise.Promise { - return this.driver.executeScript('arguments[0].scrollIntoView();', element); + scrollIntoView(element: ElementFinder): wdpromise.Promise; + scrollIntoView(element: ElementFinder, alignToTop?: boolean): wdpromise.Promise; + scrollIntoView(element: ElementFinder, scrollIntoViewOptions?: Object): wdpromise.Promise; + scrollIntoView(element: ElementFinder, alignToTopOrViewOptions?: boolean | Object): wdpromise.Promise { + //TypeScript overloads should cover the syntax: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView + if (alignToTopOrViewOptions) { + return this.driver.executeScript('arguments[0].scrollIntoView(alignToTopOrViewOptions);', element); + } else { + return this.driver.executeScript('arguments[0].scrollIntoView();', element); + } } } From 391954334a3348cf5d262c3edfbbec7846333338 Mon Sep 17 00:00:00 2001 From: Simon Kurtz Date: Mon, 4 Jun 2018 21:15:34 -0400 Subject: [PATCH 5/5] Format --- lib/browser.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/browser.ts b/lib/browser.ts index f0776bac6..ace8e614b 100644 --- a/lib/browser.ts +++ b/lib/browser.ts @@ -1227,10 +1227,13 @@ export class ProtractorBrowser extends AbstractExtendedWebDriver { scrollIntoView(element: ElementFinder): wdpromise.Promise; scrollIntoView(element: ElementFinder, alignToTop?: boolean): wdpromise.Promise; scrollIntoView(element: ElementFinder, scrollIntoViewOptions?: Object): wdpromise.Promise; - scrollIntoView(element: ElementFinder, alignToTopOrViewOptions?: boolean | Object): wdpromise.Promise { - //TypeScript overloads should cover the syntax: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView + scrollIntoView(element: ElementFinder, alignToTopOrViewOptions?: boolean|Object): + wdpromise.Promise { + // TypeScript overloads should cover the syntax: + // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView if (alignToTopOrViewOptions) { - return this.driver.executeScript('arguments[0].scrollIntoView(alignToTopOrViewOptions);', element); + return this.driver.executeScript( + 'arguments[0].scrollIntoView(alignToTopOrViewOptions);', element); } else { return this.driver.executeScript('arguments[0].scrollIntoView();', element); }