Skip to content

Commit b4f5920

Browse files
author
rocketraccoon
committed
docs: add getState and config options
1 parent 0c66e4b commit b4f5920

File tree

6 files changed

+246
-15
lines changed

6 files changed

+246
-15
lines changed

docs/commands/browser/getState.mdx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import Version from "../../_partials/specs/version.mdx";
2+
3+
# getState
4+
5+
<Version version="8.38.0" />
6+
7+
## Overview {#overview}
8+
9+
A browser command that restores the session state from a file which previously saved using the [saveState][saveState] command.
10+
11+
## Usage {#usage}
12+
13+
```typescript
14+
import type { SaveStateData } from "testplane";
15+
16+
const stateDump: SaveStateData = await browser.getState({
17+
path: "./stateDump.json",
18+
});
19+
```
20+
21+
## Command Parameters {#parameters}
22+
23+
<table>
24+
<thead>
25+
<tr>
26+
<td>**Name**</td>
27+
<td>**Type**</td>
28+
<td>**Default**</td>
29+
<td>**Description**</td>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<tr>
34+
<td>path</td>
35+
<td>`string`</td>
36+
<td>`-`</td>
37+
<td>Path to file with state.</td>
38+
</tr>
39+
</tbody>
40+
</table>
41+
42+
## Usage Examples {#examples}
43+
44+
Save state in file.
45+
46+
```typescript
47+
it("test", async ({ browser }) => {
48+
const stateData = await browser.getState({
49+
path: "./stateDump.json",
50+
});
51+
});
52+
```
53+
54+
## Related Commands {#related}
55+
56+
- [saveState](../saveState)

docs/commands/browser/restoreState.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ await browser.restoreState({
8484
Function for filtering cookies, receiving cookie objects, and returning boolean.
8585
</td>
8686
</tr>
87+
<tr>
88+
<td>refresh</td>
89+
<td>`boolean`</td>
90+
<td>`true`</td>
91+
<td>Refresh page after restore state.</td>
92+
</tr>
8793
</tbody>
8894
</table>
8995

@@ -99,9 +105,6 @@ it("test", async ({ browser }) => {
99105
path: "./stateDump.json",
100106
cookieFilter: ({ domain }) => domain === ".example.com",
101107
});
102-
103-
// Reload page for see auth result.
104-
await browser.refresh();
105108
});
106109
```
107110

docs/config/browsers.mdx

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import BrowsersExample from "@site/docs/config/_partials/examples/_browsers-exam
44
import DesiredCapabilitiesExample from "@site/docs/config/_partials/examples/_browsers-desired-capabilities.mdx";
55
import SessionEnvFlags from "@site/docs/config/_partials/examples/_browsers-session-env-flags.mdx";
66
import AssertViewOptions from "../_partials/specs/assert-view-options.mdx";
7+
import Version from "../_partials/specs/version.mdx";
78

89
# browsers
910

@@ -1075,6 +1076,57 @@ The section has the following parameters:
10751076
the application's backend source code.
10761077
</Admonition>
10771078

1079+
### stateOpts {#state_opts}
1080+
1081+
<Version version="8.38.0" />
1082+
1083+
Default settings for state commands.
1084+
1085+
You can set parameters once and then use state commands ([saveState][saveState], [restoreState][restoreState], [getState][getState]) without specifying options.
1086+
However, if you explicitly provide parameters for a command, they will have the highest priority.
1087+
1088+
<table>
1089+
<thead>
1090+
<tr>
1091+
<td>**Parameter**</td>
1092+
<td>**Type**</td>
1093+
<td>**Default**</td>
1094+
<td>**Description**</td>
1095+
</tr>
1096+
</thead>
1097+
<tbody>
1098+
<tr>
1099+
<td>`stateOpts`</td>
1100+
<td>`StateOpts`</td>
1101+
<td>`undefined`</td>
1102+
<td>Default options for state commands.</td>
1103+
</tr>
1104+
</tbody>
1105+
</table>
1106+
1107+
```typescript
1108+
type StateOpts = {
1109+
path?: string;
1110+
1111+
cookies?: boolean;
1112+
localStorage?: boolean;
1113+
sessionStorage?: boolean;
1114+
1115+
cookieFilter?: (cookie: Cookie) => boolean;
1116+
keepFile?: boolean;
1117+
};
1118+
```
1119+
1120+
Example of a valid configuration:
1121+
1122+
```typescript
1123+
export = {
1124+
stateOpts: {
1125+
path: "stateDump.json",
1126+
},
1127+
};
1128+
```
1129+
10781130
[desired-caps]: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities
10791131
[html-reporter]: ../../html-reporter/html-reporter-setup
10801132
[got]: https://github.com/sindresorhus/got/
@@ -1090,3 +1142,6 @@ The section has the following parameters:
10901142
[how-to-use-cdp]: ../../guides/how-to-use-cdp
10911143
[testplane-also-in-helper]: ../../guides/how-to-skip-test-in-browsers#solution_4
10921144
[time-travel]: ../../guides/time-travel
1145+
[saveState]: ../commands/browser/saveState
1146+
[restoreState]: ../commands/browser/restoreState
1147+
[getState]: ../commands/browser/getState
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import Version from "../../_partials/specs/version.mdx";
2+
3+
# getState
4+
5+
<Version version="8.38.0" />
6+
7+
## Обзор {#overview}
8+
9+
Эта команда возвращает состояние страницы из файла, ранее сохраненного с помощью команды [saveState][saveState].
10+
11+
## Использование {#usage}
12+
13+
```typescript
14+
import type { SaveStateData } from "testplane";
15+
16+
const stateDump: SaveStateData = await browser.getState({
17+
path: "./stateDump.json",
18+
});
19+
```
20+
21+
## Параметры команды {#parameters}
22+
23+
<table>
24+
<thead>
25+
<tr>
26+
<td>**Имя**</td>
27+
<td>**Тип**</td>
28+
<td>**Значение по умолчанию**</td>
29+
<td>**Описание**</td>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<tr>
34+
<td>path</td>
35+
<td>`string`</td>
36+
<td>`-`</td>
37+
<td>Путь к файлу с состоянием.</td>
38+
</tr>
39+
</tbody>
40+
</table>
41+
42+
## Usage Examples {#examples}
43+
44+
Save state in file.
45+
46+
```typescript
47+
it("test", async ({ browser }) => {
48+
const stateData = await browser.getState({
49+
path: "./stateDump.json",
50+
});
51+
});
52+
```
53+
54+
## Related Commands {#related}
55+
56+
- [saveState](../saveState)

i18n/ru/docusaurus-plugin-content-docs/current/commands/browser/restoreState.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ await browser.restoreState({
8282
<td>`-`</td>
8383
<td>Функция для фильтрации кук, принимает объект куки и возвращает boolean.</td>
8484
</tr>
85+
<tr>
86+
<td>refresh</td>
87+
<td>`boolean`</td>
88+
<td>`true`</td>
89+
<td>Обновить страницу после восстановления состояния.</td>
90+
</tr>
8591
</tbody>
8692
</table>
8793

i18n/ru/docusaurus-plugin-content-docs/current/config/browsers.mdx

Lines changed: 67 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import BrowsersExample from "@site/docs/config/_partials/examples/_browsers-exam
44
import DesiredCapabilitiesExample from "@site/docs/config/_partials/examples/_browsers-desired-capabilities.mdx";
55
import SessionEnvFlags from "@site/docs/config/_partials/examples/_browsers-session-env-flags.mdx";
66
import AssertViewOptions from "@site/docs/_partials/specs/assert-view-options.mdx";
7+
import Version from "@site/docs/_partials/specs/version.mdx";
78

89
# browsers
910

@@ -517,14 +518,14 @@ const defaultOpenAndWaitOpts = {
517518

518519
<table>
519520
<thead>
520-
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
521+
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
521522
</thead>
522523
<tbody>
523-
<tr><td>[`meta`](#meta)</td><td>`Record<string, any>`</td><td>_N/A_</td><td>Дополнительные данные, которые будут возвращаться командой _getMeta()_.</td></tr>
524-
<tr><td>[`takeScreenshotOnFails`](#take_screenshot_on_fails)</td><td>`ScreenshotOnFails`</td><td>`{ testFail: true, assertViewFail: true }`</td><td>Определяет снимать ли скриншот страницы браузера _(Page Screenshot)_ при падении теста, а также при падении команды _assertView_.</td></tr>
525-
<tr><td>[`takeScreenshotOnFailsMode`](#take_screenshot_on_fails_mode)</td><td>`"viewport" | "fullpage"`</td><td>`"fullpage"`</td><td>Режим снятия скриншота при падении теста.</td></tr>
526-
<tr><td>[`takeScreenshotOnFailsTimeout`](#take_screenshot_on_fails_timeout)</td><td>`number`</td><td>`5000`</td><td>Таймаут для снятия скриншота страницы браузера _(Page Screenshot)_ при падении теста, в мс.</td></tr>
527-
<tr><td>[`saveHistoryMode`](#save_history_mode)</td><td>`"all" | "none" | "onlyFailed"`</td><td>`"all"`</td><td>Сохранять историю всех выполненных команд.</td></tr>
524+
<tr><td>[`meta`](#meta)</td><td>`Record<string, any>`</td><td>_N/A_</td><td>Дополнительные данные, которые будут возвращаться командой _getMeta()_.</td></tr>
525+
<tr><td>[`takeScreenshotOnFails`](#take_screenshot_on_fails)</td><td>`ScreenshotOnFails`</td><td>`{ testFail: true, assertViewFail: true }`</td><td>Определяет снимать ли скриншот страницы браузера _(Page Screenshot)_ при падении теста, а также при падении команды _assertView_.</td></tr>
526+
<tr><td>[`takeScreenshotOnFailsMode`](#take_screenshot_on_fails_mode)</td><td>`"viewport" | "fullpage"`</td><td>`"fullpage"`</td><td>Режим снятия скриншота при падении теста.</td></tr>
527+
<tr><td>[`takeScreenshotOnFailsTimeout`](#take_screenshot_on_fails_timeout)</td><td>`number`</td><td>`5000`</td><td>Таймаут для снятия скриншота страницы браузера _(Page Screenshot)_ при падении теста, в мс.</td></tr>
528+
<tr><td>[`saveHistoryMode`](#save_history_mode)</td><td>`"all" | "none" | "onlyFailed"`</td><td>`"all"`</td><td>Сохранять историю всех выполненных команд.</td></tr>
528529
</tbody>
529530
</table>
530531

@@ -836,14 +837,14 @@ const defaultAssertViewOpts = {
836837

837838
<table>
838839
<thead>
839-
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
840+
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
840841
</thead>
841842
<tbody>
842-
<tr><td>[`agent`](#agent)</td><td>`object`</td><td>`null`</td><td>Позволяет задать свои [агенты][got-agent] для запросов по _http, https, http2_.</td></tr>
843-
<tr><td>[`headers`](#headers)</td><td>`Record<string, string>`</td><td>`null`</td><td>Позволяет настроить [заголовки][got-headers], которые будут передаваться в каждом запросе к WebDriver.</td></tr>
844-
<tr><td>[`transformRequest`](#transform_request)</td><td>`TransformRequestFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [опции][got-options] http-запроса перед запросом к WebDriver.</td></tr>
845-
<tr><td>[`transformResponse`](#transform_response)</td><td>`TransformResponseFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [http-ответ][got-response], полученный от WebDriver.</td></tr>
846-
<tr><td>[`strictSSL`](#strict_ssl)</td><td>`boolean`</td><td>`null`</td><td>Должен ли SSL-сертификат быть действительным.</td></tr>
843+
<tr><td>[`agent`](#agent)</td><td>`object`</td><td>`null`</td><td>Позволяет задать свои [агенты][got-agent] для запросов по _http, https, http2_.</td></tr>
844+
<tr><td>[`headers`](#headers)</td><td>`Record<string, string>`</td><td>`null`</td><td>Позволяет настроить [заголовки][got-headers], которые будут передаваться в каждом запросе к WebDriver.</td></tr>
845+
<tr><td>[`transformRequest`](#transform_request)</td><td>`TransformRequestFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [опции][got-options] http-запроса перед запросом к WebDriver.</td></tr>
846+
<tr><td>[`transformResponse`](#transform_response)</td><td>`TransformResponseFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [http-ответ][got-response], полученный от WebDriver.</td></tr>
847+
<tr><td>[`strictSSL`](#strict_ssl)</td><td>`boolean`</td><td>`null`</td><td>Должен ли SSL-сертификат быть действительным.</td></tr>
847848
</tbody>
848849
</table>
849850

@@ -1082,6 +1083,57 @@ export = {
10821083
серверной части приложения.
10831084
</Admonition>
10841085

1086+
### stateOpts {#state_opts}
1087+
1088+
<Version version="8.38.0" />
1089+
1090+
Настройки по умолчанию для команд состояния.
1091+
1092+
Вы можете задать параметры один раз и затем использовать команды состояния (([saveState][saveState], [restoreState][restoreState], [getState][getState])) без указания опций.
1093+
Однако если вы явно укажете параметры для команды, они будут иметь высший приоритет.
1094+
1095+
<table>
1096+
<thead>
1097+
<tr>
1098+
<td>**Параметр**</td>
1099+
<td>**Тип**</td>
1100+
<td>**По&nbsp;умолчанию**</td>
1101+
<td>**Описание**</td>
1102+
</tr>
1103+
</thead>
1104+
<tbody>
1105+
<tr>
1106+
<td>`stateOpts`</td>
1107+
<td>`StateOpts`</td>
1108+
<td>`undefined`</td>
1109+
<td>Настройки по умолчанию для команд состояния.</td>
1110+
</tr>
1111+
</tbody>
1112+
</table>
1113+
1114+
```typescript
1115+
type StateOpts = {
1116+
path?: string;
1117+
1118+
cookies?: boolean;
1119+
localStorage?: boolean;
1120+
sessionStorage?: boolean;
1121+
1122+
cookieFilter?: (cookie: Cookie) => boolean;
1123+
keepFile?: boolean;
1124+
};
1125+
```
1126+
1127+
Пример валидной конфигурации:
1128+
1129+
```typescript
1130+
export = {
1131+
stateOpts: {
1132+
path: "stateDump.json",
1133+
},
1134+
};
1135+
```
1136+
10851137
[desired-caps]: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities
10861138
[html-reporter]: ../../html-reporter/html-reporter-setup
10871139
[got]: https://github.com/sindresorhus/got/
@@ -1097,3 +1149,6 @@ export = {
10971149
[how-to-use-cdp]: ../../guides/how-to-use-cdp
10981150
[testplane-also-in-helper]: ../../guides/how-to-skip-test-in-browsers#solution_4
10991151
[time-travel]: ../../guides/time-travel
1152+
[saveState]: ../commands/browser/saveState
1153+
[restoreState]: ../commands/browser/restoreState
1154+
[getState]: ../commands/browser/getState

0 commit comments

Comments
 (0)