wc-e2e-page-objects
Version:
WooCommerce Page Objects to be used on end-to-end tests with Selenium WebDriver
34 lines (27 loc) • 861 B
JavaScript
/**
* External dependencies
*/
import { By } from 'selenium-webdriver';
import { WebDriverHelper as helper } from 'wp-e2e-webdriver';
import { Component } from 'wp-e2e-page-objects';
const MENU_SELECTOR = By.css( '.woocommerce-MyAccount-navigation' );
export default class ComponentMyAccountMenu extends Component {
constructor( driver, selector = MENU_SELECTOR ) {
super( driver, selector, { wait: false } );
}
hasMenu( menu ) {
return helper.isEventuallyPresentAndDisplayed(
this.driver,
By.xpath( this._getMenuXpathExpression( menu ) )
);
}
click( menu ) {
const selector = By.xpath(
this._getMenuXpathExpression( menu )
);
return helper.clickWhenClickable( this.driver, selector );
}
_getMenuXpathExpression( menu ) {
return `//nav[@class="woocommerce-MyAccount-navigation"]//li/a[contains(text(), "${ menu }")]`;
}
}