Категорії

Робота з префіксами BAS

Якщо для створення скриптів автоматизацї ви використовуєте BAS, то маєте знати, що він має свої власні селектори (префікси), які вписуються разом з усіма іншими типами селекторів, і з якими обов’язково необхідно вміти працювати. Більш детально про те, як BAS працює з селекторами і префіксами ви можете дізнатися з офіційного мануалу, а в межах цієї сторінки я хочу розглянути найголовніші особливості.

Як виглядає префікс BAS

Префікси BAS завжди пишуться між двома символами >.
Найпростіший приклад: кожен рядок селектора зажди починається з префіксу >CSS> або >MATCH> або >XPATH>.
Ці префікси вказують BAS на тип селектора, який ви обрали для пошуку елементів.

Які бувають префікси BAS

Префікси >CSS>   >MATCH> та >XPATH> ми вже розглянули. Вони вказують на тип селектора, який описується після цього префіксу.

Також існує префікс >AT>, який вказує на порядковий номер елементу за чергою, починаючи з нуля. Наприклад, селектор >XPATH> //div>AT>0 вказує на перший елемент div, що зустрічається на сторінці. Тобто, можна сказати, що >AT>0 – це своєрідний аналог псевдокласу CSS :nth-child(1).

Ще один дуже важливий префікс – >FRAME>. Він використовується BAS як вказівка перейти всередину фрейму (наприклад, якщо потрібний нам елемент знаходиться всередині <iframe>), бо з логіки BAS, фрейми – це окремі веб-сторінки.

Наочний приклад

Давайте розглянемо такий код:

<div>
	<iframe src="https://scramble.wiki/content">
		<p>
			Текстовий контент
		</p>
	</iframe>
	<iframe src="https://scramble.wiki/register">
		<button>
			Забув пароль
		</button>
		<button>
			Реєстрація
		</button>
	</iframe>
</div>

Тут ми маємо веб-сторінку, яка складається з двох фреймів, наповнених контентом. Припустимо, нам треба натиснути на кнопку реєстрації, що знаходиться в другому фреймі. У такому разі процес створення селектора виглядатиме так (покроково):

1. Вказуємо BAS на бажаний тип селектора:

>XPATH>

2. Вказуємо на потрібний фрейм:

>XPATH> //iframe[contains(@src,'register')]

3. Переходимо в цей фрейм:

>XPATH> //iframe[contains(@src,'register')] >FRAME>

4. Тепер, згідно з логікою BAS, ми знаходимось вже на новій сторінці, тож нам треба знову вказати тип селектора, який ми збираємося використовувати на цій сторінці. При цьому зовсім не обов’язково знову обирати >XPATH>. Для прикладу, давайте скажемо BAS, що тепер селектори будуть >CSS>:

>XPATH> //iframe[contains(@src,'register')] >FRAME> >CSS>

5. Тепер ми вписуємо CSS-селектор кнопки:

>XPATH> //iframe[contains(@src,'register')] >FRAME> >СSS> button

6. Додаємо BAS-префікс, що вказує на другий елемент в черзі (за відліком з нуля):

>XPATH> //iframe[contains(@src,'register')] >FRAME> >CSS> button >AT>1

 

0 0 голоси
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Зворотній зв'язок в режимі реального часу
Переглянути всі коментарі
Зміст