Skip to content

Commit

Permalink
feat: publish docs (#6)
Browse files Browse the repository at this point in the history
* feat: publish docs
  • Loading branch information
shadowusr authored Jun 23, 2024
1 parent 52f5135 commit bbfc40e
Show file tree
Hide file tree
Showing 225 changed files with 20,772 additions and 160 deletions.
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

0 comments on commit bbfc40e

Please sign in to comment.