async selectDocumentTab() { await this.selectTab( 'Document' ); return await driverHelper.waitTillPresentAndDisplayed( this.driver, By.css( '.components-panel' ) ); }
async selectMyHome() { return await driverHelper.clickWhenClickable( this.driver, By.css( '.menu-link-text[data-e2e-sidebar="My Home"]' ) ); }
static async switchToIFrame( driver ) { const iFrameSelector = By.css( '.web-preview__frame' ); const webPreview = By.css( '.web-preview__inner.is-visible.is-loaded' ); await driver.switchTo().defaultContent(); await driverHelper.waitTillPresentAndDisplayed( driver, webPreview ); return await driver.wait( until.ableToSwitchToFrame( iFrameSelector ), this.explicitWaitMS, 'Could not switch to web preview iFrame' ); }
async edit() { await this.driver.switchTo().defaultContent(); return await driverHelper.clickWhenClickable( this.driver, By.css( '.button.web-preview__edit' ) ); }
async enterText( text ) { const appenderSelector = By.css( '.block-editor-default-block-appender' ); const paragraphSelector = By.css( 'p.block-editor-rich-text__editable:first-of-type' ); await driverHelper.clickWhenClickable( this.driver, appenderSelector ); await driverHelper.waitTillPresentAndDisplayed( this.driver, paragraphSelector ); return await this.driver.findElement( paragraphSelector ).sendKeys( text ); }
async imageDisplayed( fileDetails ) { return await this.driver .findElement( By.css( `img[alt='${ fileDetails.imageName }']` ) ) .then( ( imageElement ) => { return driverHelper.imageVisible( this.driver, imageElement ); } ); }
async dismissPageTemplateSelector() { if ( await driverHelper.isElementPresent( this.driver, By.css( '.page-template-modal' ) ) ) { const useBlankButton = await this.driver.findElement( By.css( '.page-template-modal__buttons .components-button.is-primary' ) ); await this.driver.executeScript( 'arguments[0].click()', useBlankButton ); } }
async clickSignOut() { const signOutSelector = by.css( 'button.sidebar__me-signout-button' ); await this.driver.sleep( 1000 ); await driverHelper.clickWhenClickable( this.driver, signOutSelector ); return await this.driver.sleep( 1000 ); }
async closePublishedPanel() { const closeButton = await this.driver.findElement( By.css( '.editor-post-publish-panel__header button[aria-label="Close panel"]' ) ); return await this.driver.executeScript( 'arguments[0].click();', closeButton ); }
async categoryDisplayed() { return await this.driver .findElement( By.css( 'a[rel="category tag"], a[rel="category"]' ) ) .getText(); }
constructor( driver ) { super( driver, By.css( '.edit-post-header' ) ); this.publishSelector = By.css( '.editor-post-publish-panel__header-publish-button button.editor-post-publish-button' ); this.publishingSpinnerSelector = By.css( '.editor-post-publish-panel__content .components-spinner' ); this.prePublishButtonSelector = By.css( '.editor-post-publish-panel__toggle' ); this.publishHeaderSelector = By.css( '.editor-post-publish-panel__header' ); this.editoriFrameSelector = By.css( '.calypsoify.is-iframe iframe' ); }
async hideGdprBanner() { const gdprBannerButton = By.css( '.gdpr-banner__acknowledge-button' ); try { await driverHelper.waitTillPresentAndDisplayed( this.driver, gdprBannerButton, 3000 ); await driverHelper.clickWhenClickable( this.driver, gdprBannerButton ); return await driverHelper.waitTillNotPresent( this.driver, gdprBannerButton, 3000 ); } catch ( e ) { console.log( 'GDPR button is not present.' ); // eslint-disable-line no-console return true; } }
async launchPreview() { return await driverHelper.clickWhenClickable( this.driver, By.css( '.components-button.editor-post-preview' ), this.explicitWaitMS ); }