diff --git a/e2e/calculate-all-params.e2e-spec.ts b/e2e/calculate-all-params.e2e-spec.ts index 39129ac615e92f804560d9bd3db5f34e8d14f98b..9003678bdf375829abd642fb6555a3d8ff243914 100644 --- a/e2e/calculate-all-params.e2e-spec.ts +++ b/e2e/calculate-all-params.e2e-spec.ts @@ -4,6 +4,7 @@ import { Navbar } from "./navbar.po"; import { PreferencesPage } from "./preferences.po"; import { browser, element, by } from "protractor"; import { testedCalcTypes } from "./tested_calctypes"; +import { scrollPageToTop } from "./util.po"; /** * For all calculators, try to calculate every parameter: check that only one parameter @@ -65,7 +66,7 @@ describe("ngHyd − calculate all parameters of all calculators", async () => { // that the calculable parameters are shown if (ct === 30 && i > 0) { // prevents "Element is not clickable at point" - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); const inputLink = element(by.css("#pb-data-results-selector .drs-item a")); await inputLink.click(); } diff --git a/e2e/calculator.po.ts b/e2e/calculator.po.ts index 400f4b0abbc88cf80c09be86d6a159f9362823ea..f816fd4ffd45dc6062143335262fa4657cabdb2e 100644 --- a/e2e/calculator.po.ts +++ b/e2e/calculator.po.ts @@ -1,4 +1,5 @@ import { by, element, ElementFinder, browser } from "protractor"; +import { scrollPageToTop } from "./util.po"; export class CalculatorPage { @@ -287,7 +288,7 @@ export class CalculatorPage { const container = await this.findParentContainer(elt); // find radio buttons const button = container.element(by.css("mat-button-toggle.radio_" + mode + " > button")); - await browser.executeScript("window.scrollTo(0, 0);"); // sometimes button slides behind navbar and click() fails + await scrollPageToTop(); // sometimes button slides behind navbar and click() fails await button.click(); // for "var" mode, close the modal if (mode === "var") { diff --git a/e2e/clone-all-calc.e2e-spec.ts b/e2e/clone-all-calc.e2e-spec.ts index e55c8b3f461791ffad1b8207ee81070e7c2b8879..ca352163c6d9e521ff65dd44fc3fc3160867356a 100644 --- a/e2e/clone-all-calc.e2e-spec.ts +++ b/e2e/clone-all-calc.e2e-spec.ts @@ -4,6 +4,7 @@ import { Navbar } from "./navbar.po"; import { browser } from "protractor"; import { PreferencesPage } from "./preferences.po"; import { testedCalcTypes } from "./tested_calctypes"; +import { scrollPageToTop } from "./util.po"; /** * Clone calculators @@ -48,7 +49,7 @@ describe("ngHyd − clone all calculators with all possible <select> values", () const sourceValues = await calcPage.storeAllInputValues(); // clone calculator - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); await calcPage.clickCloneCalcButton(); await browser.sleep(300); diff --git a/e2e/clone-calc.e2e-spec.ts b/e2e/clone-calc.e2e-spec.ts index c09edd3c8681301af749ec21aeda27dc34e51a54..038a90e661a28a6526a9b143f407842f3bed4329 100644 --- a/e2e/clone-calc.e2e-spec.ts +++ b/e2e/clone-calc.e2e-spec.ts @@ -4,6 +4,7 @@ import { CalculatorPage } from "./calculator.po"; import { Navbar } from "./navbar.po"; import { browser } from "protractor"; import { PreferencesPage } from "./preferences.po"; +import { scrollPageToTop } from "./util.po"; /** * Clone calculators @@ -66,7 +67,7 @@ describe("ngHyd − clone a calculator", () => { await browser.sleep(500); // otherwise clickCloneCalcButton() fails with "Element is not clickable at point" - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); await calcPage.clickCloneCalcButton(); await browser.sleep(500); diff --git a/e2e/pab.e2e-spec.ts b/e2e/pab.e2e-spec.ts index 2f75f8df9d326d084d4302160a18b7ff431de7ac..866f67fb57da855a5c8ce10d407efd3da5616ffc 100644 --- a/e2e/pab.e2e-spec.ts +++ b/e2e/pab.e2e-spec.ts @@ -5,6 +5,7 @@ import { browser, by, element } from "protractor"; import { AppPage } from "./app.po"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; +import { scrollPageToTop } from "./util.po"; /** * Clone calculators @@ -124,7 +125,7 @@ describe("ngHyd − Passe à Bassins", () => { await calcButtonCl.click(); // make sure "Generate PAB" button is visible (it might be hidden behind navbar) - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); // generate PAB const genButton = calcPage.getGeneratePabButton(); await genButton.isPresent(); @@ -182,7 +183,7 @@ describe("ngHyd − Passe à Bassins", () => { await calcButtonCl.click(); // make sure "Generate PAB" button is visible (it might be hidden behind navbar) - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); // create PAB from it, changing modal parameters const genButton = calcPage.getGeneratePabButton(); await genButton.click(); diff --git a/e2e/solveur.e2e-spec.ts b/e2e/solveur.e2e-spec.ts index a542f32ba20103af9ac8f1e42e886e1df209998e..89ca70d6ed4b357ddf9999ae61b08f9b4c4e5a9c 100644 --- a/e2e/solveur.e2e-spec.ts +++ b/e2e/solveur.e2e-spec.ts @@ -5,6 +5,7 @@ import { Navbar } from "./navbar.po"; import { browser, by, element } from "protractor"; import { SideNav } from "./sidenav.po"; import { PreferencesPage } from "./preferences.po"; +import { scrollPageToTop } from "./util.po"; /** * Clone calculators @@ -124,8 +125,8 @@ describe("Solveur - ", () => { const hasResults = await calcPage.hasResults(); expect(hasResults).toBe(true); - // otherwise clickCloneCalcButton() fails with "Element is not clickable at point" - await browser.executeScript("window.scrollTo(0, 0);"); + await scrollPageToTop(); // otherwise clickCloneCalcButton() fails with "Element is not clickable at point" + await calcPage.clickCloneCalcButton(); await browser.sleep(500); diff --git a/e2e/util.po.ts b/e2e/util.po.ts new file mode 100644 index 0000000000000000000000000000000000000000..65d5cc7cfc37b472a2a62190d7b7a471886ba1ee --- /dev/null +++ b/e2e/util.po.ts @@ -0,0 +1,8 @@ +import { browser } from "protractor"; + +/** + * scroll page to top + */ +export async function scrollPageToTop() { + await browser.executeScript("window.scrollTo(0, 0);"); +}