Skip to content

Commit

Permalink
Merge pull request #125 from Financial-Times/@maxcbc/add-waitUntil-to…
Browse files Browse the repository at this point in the history
…-webdriver-page

Update webdriver page to use 'waitUntil'
  • Loading branch information
Max Clark authored Aug 7, 2019
2 parents 02a6821 + 26103ea commit ae1783f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
2 changes: 1 addition & 1 deletion lib/smoke/puppeteer-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ class PuppeteerPage {
}

async getElementText (selector) {
return await this.page.$eval(selector, el => el.innerText);
return this.page.$eval(selector, el => el.innerText);
}

coverageFor (url) {
Expand Down
24 changes: 15 additions & 9 deletions lib/smoke/webdriver-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,15 @@ class WebdriverPage {
screenshot: options.screenshot
};


this.waitUntil = options.waitUntil || 'domcontentloaded';

}

async init () {

this.browserOptions = await getBrowserstackConfig(this.type);
if(!this.browserOptions || //skip if no environment variables
if (!this.browserOptions || //skip if no environment variables
this.isAutomatedTest && !(this.check.elements || this.check.screenshot)) {
return;
}
Expand All @@ -39,42 +42,45 @@ class WebdriverPage {
await this.browser.setViewportSize(this.dimensions);

//skip tests which are user based, because we can't set the FT-Test-Host header
if(this.method !== 'GET' || this.user) {
if (this.method !== 'GET' || this.user) {
return;
}

if(this.requestHeaders) {
if (this.requestHeaders) {

//Webdriver only lets you set cookies on the current page, so visit the page.
await this.browser.url(this.url.toString());

//Translate request headers into cookies if we know about them
Object.entries(this.requestHeaders).forEach(([key, value]) => {
if(key.toLowerCase() === 'ft-flags') {
this.browser.setCookie({ name: 'next-flags', value: encodeURIComponent(value) });
if (key.toLowerCase() === 'ft-flags') {
this.browser.setCookie({name: 'next-flags', value: encodeURIComponent(value)});
}
});
}

return await this.browser.url(this.url.toString());
return this.browser.url(this.url.toString());
}

async getVisibleElements (selector) {
try {
if (this.waitUntil !=='domcontentloaded') {
await this.browser.waitUntil(() => Promise.resolve(this.browser.$(selector).isDisplayed()));
}
const response = await this.browser.isVisible(selector);
return [].concat(response).filter(a => a).length;
} catch(e) {
} catch (e) {
console.log(e); //eslint-disable-line no-console
return null;
}
}

async getElementText (selector) {
return await this.browser.getText(selector);
return this.browser.getText(selector);
}

async screenshot (fileName) {
return await this.browser.saveScreenshot(fileName);
return this.browser.saveScreenshot(fileName);
}

async close () {
Expand Down

0 comments on commit ae1783f

Please sign in to comment.