Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: migrate docs #6

Merged
merged 2 commits into from
Jun 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file removed blog/.empty
Empty file.
176 changes: 176 additions & 0 deletions blog/component-testing.mdx

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions blog/rebranding.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: Ребрендинг
slug: testplane-rebranding
hide_table_of_contents: false
date: 2024-05-20T13:00
---

Представляем вашему вниманию... **Testplane**. Наш проект Hermione решил сменить имя — встречайте проверенный годами продукт в свежем образе!

<!-- truncate -->

Мы долго рассматривали все за и против и пришли к выводу, что новое имя — Testplane — наилучшим образом отражает наше видение и будущее развитие продукта:

1. Мы планируем активно вкладываться в развитие инструмента в опенсорсе. Новое имя символизирует качественный переход в развитии инструмента.
2. Мы стремимся создать полноценный бренд с товарным знаком, логотипом, фирменным визуальным стилем. Testplane — это название, которое как сочетает в себе отсылку к «испытательному полету», так и может читаться как "плоскость для тестирования".

Суть продукта остаётся неизменной. Testplane — это тот же проект, который вы знали многие годы как Hermione, но в свежем, обновленном виде. Чтобы упростить переход, мы решили сохранить сквозную нумерацию версий: Testplane v8.x — это эквивалент Hermione v8.x.

Если вы уже работаете с Hermione, обновление на Testplane займет всего несколько минут. Мы проектировали его как drop-in замену:

- Полная поддержка существующих плагинов Hermione.
- Понимание всех опций и переменных окружения Hermione.
- Полная совместимость конфигураций.
- Два бинарных файла (testplane и hermione) для плавного перехода (вы можете запускать и как hermione gui, и как testplane gui).
- Экспорт типов для TypeScript, включая как собственные типы Testplane, так и типы Hermione (включая hermioneCtx).

Если же вы еще не пробовали Testplane — загляните в нашу документацию и начните ваше исследование с Testplane всего за пару минут!

Благодарим за интерес к проекту! ✈️
87 changes: 87 additions & 0 deletions docs/commands/browser/$$.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import Admonition from "@theme/Admonition";

# $$

## Обзор {#overview}

Используйте команду `$$` вместо [findElements][find-elements] как более краткую команду, чтобы получить несколько элементов на странице.

Команда `$$` возвращает массив с искомыми элементами, на каждом из которых можно вызывать команды действия без передачи селектора. Однако, если вы все же передадите селектор, то сначала будет найден соответствующий элемент, а затем вызвано действие для этого элемента.

Вы можете связать `$` или `$$` вместе, чтобы спуститься по дереву DOM.

<Admonition type="info">
Подробнее о том, как выбрать определенные элементы, смотрите в рецепте «[Как использовать
селекторы][how-to-use-selectors]».
</Admonition>

## Использование {#usage}

```javascript
await browser.$$(selector);
```

## Параметры команды {#parameters}

<table>
<thead>
<tr><td>**Имя**</td><td>**Тип**</td><td>**Описание**</td></tr>
</thead>
<tbody>
<tr><td>selector</td><td>String или Function</td><td>Селектор или JS-функция для получения множества элементов.</td></tr>

</tbody>
</table>

## Примеры использования {#examples}

**index.html**

```html
<ul id="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/">Developer Guide</a>
</li>
<li>
<a href="/">API</a>
</li>
<li>
<a href="/">Contribute</a>
</li>
</ul>
```

**$.js**

```javascript
it("should get text a menu link", async ({ browser }) => {
const text = await browser.$$("#menu")[0];

console.log(await text.$$("li")[2].$("a").getText()); // выведет: "API"
});

it("should get text a menu link - JS Function", async ({ browser }) => {
const text = await browser.$$(function () {
// Использовать здесь стрелочную функцию нельзя.
// Это Window – https://developer.mozilla.org/en-US/docs/Web/API/Window
//
// TypeScript-пользователи могут сделать что-нибудь вроде:
// return (this as Window).document.querySelectorAll('#menu')
return this.document.querySelectorAll("#menu"); // Element[]
})[0];

console.log(await text.$$("li")[2].$("a").getText()); // выведет: "API"
});
```

## Связанные команды {#related}

- [browser.$](./$)
- [element.$](../element/$)
- [element.$$](../element/$$)

[find-elements]: https://webdriver.io/docs/api/webdriver/#findelements
[how-to-use-selectors]: https://webdriver.io/docs/selectors
114 changes: 114 additions & 0 deletions docs/commands/browser/$.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
sidebar_position: 1
---

import Admonition from "@theme/Admonition";

# $

## Обзор {#overview}

Используйте команду `$` вместо [findElement][find-element] как более краткую команду, чтобы получить один элемент на странице.

Команда `$` возвращает объект, описывающий элемент, на котором можно вызывать команды действия без передачи селектора. Однако, если вы все же передадите селектор, то сначала будет найден соответствующий элемент, а затем вызвано действие для этого элемента. Вы также можете передать объект в качестве селектора, где объект содержит свойство `element-6066-11e4-a52e-4f735466cecf` со значением ссылки на элемент. Затем команда преобразует ссылку в расширенный элемент WebdriverIO.

Вы можете связать `$` или `$$` вместе, чтобы спуститься по дереву DOM.

<Admonition type="info">
Подробнее о том, как выбрать определенные элементы, читайте в рецепте «[Как использовать
селекторы][how-to-use-selectors]».
</Admonition>

## Использование {#usage}

```javascript
await browser.$(selector);
```

## Параметры команды {#parameters}

<table>
<thead>
<tr><td>**Имя**</td><td>**Тип**</td><td>**Описание**</td></tr>
</thead>
<tbody>
<tr><td>selector</td><td>String или Function или Matcher</td><td>Селектор или JS-функция для получения конкретного элемента.</td></tr>

</tbody>
</table>

## Примеры использования {#examples}

**index.html**

```html
<ul id="menu">
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/">Developer Guide</a>
</li>
<li>
<a href="/">API</a>
</li>
<li>
<a href="/">Contribute</a>
</li>
</ul>
```

**$.js**

```javascript
it("should get text a menu link", async ({ browser }) => {
const text = await browser.$("#menu");

console.log(await text.$$("li")[2].$("a").getText()); // выведет: "API"
});

it("should get text a menu link - JS Function", async ({ browser }) => {
const text = await browser.$(function () {
// Использовать здесь стрелочную функцию нельзя.
// Это Window – https://developer.mozilla.org/en-US/docs/Web/API/Window
//
// TypeScript-пользователи могут сделать что-нибудь вроде:
// return (this as Window).document.querySelector('#menu')
return this.document.querySelector("#menu"); // Element
});

console.log(await text.$$("li")[2].$("a").getText()); // выведет: "API"
});

it("should allow to convert protocol result of an element into a WebdriverIO element", async ({
browser,
}) => {
const activeElement = await browser.getActiveElement();

console.log(await browser.$(activeElement).getTagName()); // выведет активный элемент
});

it("should use Androids DataMatcher or ViewMatcher selector", async ({ browser }) => {
const menuItem = await browser.$({
name: "hasEntry",
args: ["title", "ViewTitle"],
class: "androidx.test.espresso.matcher.ViewMatchers",
});
await menuItem.click();

const menuItem = await browser.$({
name: "hasEntry",
args: ["title", "ViewTitle"],
});
await menuItem.click();
});
```

## Связанные команды {#related}

- [browser.$$](./$$)
- [element.$](../element/$)
- [element.$$](../element/$$)

[find-element]: https://webdriver.io/docs/api/webdriver/#findelement
[how-to-use-selectors]: https://webdriver.io/docs/selectors
Loading
Loading