Skip to content

Commit c04d762

Browse files
introduced browserManager object to control all launched browser and electron instances (#92)
- 🚀 introduced browserManager object to control all launched browser and electron instances (#92) - 🚀 added steps to start/stop/switch to other browser/electron instances
1 parent 9430344 commit c04d762

File tree

13 files changed

+1156
-118
lines changed

13 files changed

+1156
-118
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
88
:beetle: - bugfix
99
:x: - deprecation
1010

11+
## [0.41.0]
12+
- :rocket: introduced browserManager object to control all launched browser and electron instances
13+
- :rocket: added steps to start/stop/switch to other browser/electron instances
14+
1115
## [0.40.0]
1216
- :rocket: changed simple expects to poll expects
1317
- :rocket: changed behavior of _I switch to {string} window_ step (now it is wait for window existence)

README.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,40 @@ module.exports = {
3535
## Global variables
3636
@qavajs/steps-playwright exposes following global variables
3737

38-
| variable | type | description |
39-
|------------|---------------------------------------------|----------------------------------------------|
40-
| `browser` | `Browser` | browser instance |
41-
| `driver` | `Browser` | browser instance (alias for browser) |
42-
| `context` | `BrowserContext` | current browser context |
43-
| `page` | `Page` | current context page |
44-
| `contexts` | `{ [contextName: string]: BrowserContext }` | Map of opened contexts in multi browser mode |
38+
| variable | type | description |
39+
|------------------|----------------------------------|---------------------------------------------------------------|
40+
| `browser` | `Browser \| ElectronApplication` | browser instance |
41+
| `driver` | `Browser \| ElectronApplication` | browser instance (alias for browser) |
42+
| `context` | `BrowserContext` | current browser context |
43+
| `page` | `Page` | current context page |
44+
| `browserManager` | `BrowserManager` | manager to control all opened browsers and electron instances |
4545

4646
## Connect to playwright server
4747
In order to connect to playwright server pass _wsEndpoint_ property in capabilities object
4848
```typescript
49-
{
50-
capabilities: {
51-
browserName: 'chromium',
52-
wsEndpoint: 'ws://127.0.0.1:60291/2bd48ce272de2b543e4c8c533f664b83'
49+
module.exports = {
50+
default: {
51+
browser: {
52+
capabilities: {
53+
browserName: 'chromium',
54+
wsEndpoint: 'ws://127.0.0.1:60291/2bd48ce272de2b543e4c8c533f664b83'
55+
}
56+
},
5357
}
5458
}
5559
```
5660

5761
## Connect to cdp endpoint
5862
In order to connect to CDP endpoint pass _cdpEndpoint_ property in capabilities object
5963
```typescript
60-
{
61-
capabilities: {
62-
browserName: 'chromium',
63-
cdpEndpoint: 'http://localhost:9222/'
64+
module.exports = {
65+
default: {
66+
browser: {
67+
capabilities: {
68+
browserName: 'chromium',
69+
cdpEndpoint: 'http://localhost:9222/'
70+
}
71+
},
6472
}
6573
}
6674
```
@@ -128,3 +136,22 @@ To properly use globals exposed by @qavajs/steps-playwright add corresponding ty
128136
}
129137
```
130138

139+
## Development and testing
140+
Install dependencies
141+
`npm install`
142+
143+
Install playwright browsers
144+
`install:browsers`
145+
146+
Build lib
147+
`npm run build`
148+
149+
Execute unit test (with vitest)
150+
`npm run test`
151+
152+
Execute e2e browser tests
153+
`npm run test:e2e`
154+
155+
Execute e2e electron tests
156+
`npm run test:e2e:electron`
157+

global.d.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import { Browser, BrowserContext, Page } from 'playwright';
2+
import { BrowserManager } from './src/browserManager';
23

34
declare global {
45
var browser: Browser;
56
var driver: Browser;
67
var context: BrowserContext;
78
var page: Page;
8-
var contexts: {
9-
[contextName: string]: BrowserContext
10-
};
9+
var browserManager: BrowserManager
1110
}

0 commit comments

Comments
 (0)