# wp-e2e-page-objects

> WordPress Page Objects to be used on end-to-end tests with Selenium WebDriver

Latest version **0.10.0** (published 2020-02-10) · GPL-2.0 license · 0 weekly downloads

## Install

```sh
npm install wp-e2e-page-objects
pnpm add wp-e2e-page-objects
yarn add wp-e2e-page-objects
bun add wp-e2e-page-objects
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.10.0 |
| Published | 2020-02-10 |
| First published | 2016-12-06 |
| Weekly downloads | 0 |
| License | GPL-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 579.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | WooCommerce |
| Maintainers | alisterscott, gedex, rodrigoprimo |
| Keywords | WordPress, wp, page-objects, selenium, webdriver |

## Links

- npm: https://www.npmjs.com/package/wp-e2e-page-objects
- Repository: https://github.com/woocommerce/wp-e2e-page-objects
- Issues: https://github.com/woocommerce/wp-e2e-page-objects
- npm.io page: https://npm.io/package/wp-e2e-page-objects

## Dependencies (5)

- [lodash](https://npm.io/package/lodash.md) ^4.17.15
- [deprecate](https://npm.io/package/deprecate.md) ^1.1.1
- [sprintf-js](https://npm.io/package/sprintf-js.md) ^1.1.2
- [wp-e2e-webdriver](https://npm.io/package/wp-e2e-webdriver.md) ^0.16.0
- [selenium-webdriver](https://npm.io/package/selenium-webdriver.md) ^3.6.0

## Alternatives

- [@snazzah/davey](https://npm.io/package/@snazzah/davey.md) — 1.5M weekly downloads
- [@vendure/testing](https://npm.io/package/@vendure/testing.md) — 8.3K weekly downloads
- [vue-simple-context-menu](https://npm.io/package/vue-simple-context-menu.md) — 6.6K weekly downloads
- [cypress-webpack-preprocessor-v5](https://npm.io/package/cypress-webpack-preprocessor-v5.md) — 2.1K weekly downloads
- [@backstage/plugin-catalog-backend-module-puppetdb](https://npm.io/package/@backstage/plugin-catalog-backend-module-puppetdb.md) — 1.3K weekly downloads

## Recent versions

- 0.10.0 (latest) — 2020-02-10
- 0.8.1 — 2018-04-10
- 0.8.0 — 2017-11-17
- 0.7.0 — 2017-04-05
- 0.6.0 — 2017-02-20
- 0.5.4 — 2016-12-19
- 0.5.3 — 2016-12-19
- 0.5.2 — 2016-12-19
- 0.5.1 — 2016-12-19
- 0.5.0 — 2016-12-19
- 0.4.7 — 2016-12-15
- 0.4.6 — 2016-12-15
- 0.4.5 — 2016-12-15
- 0.4.4 — 2016-12-15
- 0.4.3 — 2016-12-14
- … 8 more at https://npm.io/package/wp-e2e-page-objects/versions

## README

wp-page-objects
===============

[![npm version](https://img.shields.io/npm/v/wp-e2e-page-objects.svg?style=flat)](https://www.npmjs.com/package/wp-e2e-page-objects)
[![build status](https://api.travis-ci.org/woocommerce/wp-e2e-page-objects.svg)](http://travis-ci.org/woocommerce/wp-e2e-page-objects)
[![dependency status](https://david-dm.org/woocommerce/wp-e2e-page-objects.svg)](https://david-dm.org/woocommerce/wp-e2e-page-objects)

WordPress Page Objects to be used on end-to-end tests with Selenium WebDriver.

## Install

```
npm install wp-page-objects
```

## Usage

Example of front-page assertion:

~~~js
import assert from 'assert';
import { WebDriverManager } from 'wp-e2e-webdriver';
import { FrontPage } from 'wp-e2e-page-objects';

const manager = new WebDriverManager( 'chrome', {
	baseUrl: 'http://local.wordpress.dev'
} );
const driver = manager.getDriver();

const frontPage = new FrontPage( driver, {
	url: manager.getPageUrl( '/' )
} );

assert( frontPage.sidebar.displayed() );
assert( frontPage.sidebar.widgets.recentPosts.displayed() );
assert( frontPage.sidebar.widgets.recentComments.displayed() );
~~~

Login through `/wp-login.php`:

~~~js
import { WebDriverManager, WebDriverHelper as helper } from 'wp-e2e-webdriver';

const manager = new WebDriverManager( 'chrome', {
	baseUrl: 'http://local.wordpress.dev'
} );
const driver = manager.getDriver();

helper.clearCookiesAndDeleteLocalStorage()
const wpLogin = new WPLogin( driver, { url: manager.getPageUrl( '/wp-login.php' ) } );
const dashboard = wpLogin.login( 'username', 'password' );
~~~

## Covered Page Objects

### Front-Page

Use twentysixteen theme by default, but class can be extended with
you own CSS selector.

* `FrontPage`
  * `.components.sidebar` → `ComponentSidebar`
    * `.components.widgets.recentPosts` → `ComponentWidgetRecentPosts`
    * `.components.widgets.recentComments` → `ComponentWidgetRecentComments`

### WP-Admin

Fresh install with hello-dolly plugin deactivated.

* `WPAdminDashboard`
  * `.components.welcomePanel` → `ComponentWelcomePanel`
* `WPAdminPluginInstall`
  * `.components.filter` → `ComponentPluginInstallFilter`
* `WPAdminPlugins`
  * `.components.pluginsList` → `ComponentPluginsList`
* `WPAdminPostEdit`
  * `.components.metaBoxCategories` → `ComponentMetaBoxCategories`
  * `.components.metaBoxFormat` → `ComponentMetaBoxFormat`
  * `.components.metaBoxPublish` → `ComponentMetaBoxPublish`
* `WPAdminPostNew`
  * `.components.metaBoxCategories` → `ComponentMetaBoxCategories`
  * `.components.metaBoxFormat` → `ComponentMetaBoxFormat`
  * `.components.metaBoxPublish` → `ComponentMetaBoxPublish`
* `WPAdminPosts`
  * `.components.postsList` → `ComponentPostsList`
* `WPLogin`
  * `.components.loginForm` → ComponentLoginForm

## Tests

See [README.md on test dir](./test/README.md) for running tests of this package.

---
_Source: https://npm.io/package/wp-e2e-page-objects · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
