События clickpath в браузере
Когда вы записываете clickpath в браузере , ваши взаимодействия с вашим веб-приложением фиксируются как серия событий. Существуют различные типы событий для имитации взаимодействия и управления clickpath, например, переход к URL, клики, выбор опции, ввод информации или фрагмент JavaScript. Помимо типа, события имеют различные свойства, такие как цель (состоящая из локаторов для идентификации веб-элементов на странице) и стратегия ожидания.
Типы событий clickpath в браузере и их свойства описаны ниже. События clickpath можно редактировать во время начальной настройки или в любой момент позже в режиме редактирования в настройках монитора (см. изображения ниже). Вы можете редактировать, переупорядочивать, удалять и добавлять события.
Событие синтетического скрипта — это не то же самое, что действие — только события, которые запускают веб-запросы, содержат одно или несколько действий. Карточка синтетических событий и действий на странице сведений о синтетических событиях помогает различать события скрипта с таймингами и без них. Синтетические действия (похожие на действия пользователя в Real User Monitoring) содержат данные о производительности, собранные во время выполнения clickpath. |
Событие Navigate имитирует ввод URL-адреса в адресную строку браузера и последующую загрузку страницы.
Мониторы браузера с одним URL-адресом включают одно событие Navigate. Однако обратите внимание, что выбор аутентификации веб-формы автоматически настраивает ваш монитор с одним URL-адресом с двумя событиями скрипта: Navigate и нередактируемым событием AutoLogin.
Для повышения безопасности синтетического монитора Ключ-АСТРОМ блокирует отправку запросов мониторами на локальный хост (например, localhost
или 127.0.0.1
).
В записанных clickpath первое событие автоматически создается как событие Navigate. Однако при добавлении событий вручную или редактировании clickpath вы можете добавить событие JavaScript в качестве первого события монитора. Событиям Navigate может предшествовать только одно или несколько событий JavaScript. Для clickpath требуется как минимум одно событие Navigate.
Если вы перезапишете ваш clickpath с нуля (выбрав Записать снова > От начала clickpath), все события JavaScript, которые предшествуют первому событию Navigate, будут стерты. Вы можете сохранить ваши начальные события JavaScript, выбрав запись после них.
Переход на новую веб-страницу путем нажатия ссылки на текущей веб-странице создает событие Click в профилях настольных компьютеров (или событие Tap на мобильных устройствах), а не событие Navigate. |
HTTP-аутентификация
Для браузерных clickpath вы можете автоматизировать вход в указанный URL-адрес с использованием аутентификации на основе HTTP — нажмите Включить HTTP-аутентификацию. Поддерживаемые методы аутентификации: базовая, дайджест, NTLM и Negotiate.
Для аутентификации на основе Web form в clickpath вы можете просто записать ввод учетных данных, используемых для аутентификации; Ключ-АСТРОМ автоматически захватывает учетные данные. После записи у вас есть возможность сохранить учетные данные в хранилище учетных данных.
Ключ-АСТРОМ хранит и управляет всеми учетными данными Синтетического мониторинга в хранилище учетных данных. Доступ к учетным данным контролируется, и они могут быть назначены как предназначенные только для владельца или общедоступные.
Вы можете выбрать существующую учетную запись (Выбрать учетные данные). Вы можете видеть только учетные данные, к которым у вас есть доступ в этом списке, то есть публичные учетные данные или учетные данные только владельца, созданные вами.
Браузерные мониторы поддерживают имена пользователей в форматах <username>
и <domain>\<username>
.
Вы можете создать новые учетные данные , введя Имя пользователя и Пароль. Укажите имя для учетных данных и сохраните их в хранилище. Учетные данные, которые вы создаете таким образом, автоматически устанавливаются на разрешения только владельца и могут использоваться только вами.
Обратите внимание, что у вас должно быть разрешение на доступ к хранилищу учетных данных , чтобы создать учетные данные в режиме скрипта или пользовательского интерфейса в мониторе браузера таким образом. Вы всегда можете захватить введенные учетные данные как часть записанного clickpath.
Кто может редактировать монитор, имеющий связанные учетные данные?
|
Click
В мониторах браузера событие Click определяет, где выполнить щелчок мыши на странице. Оно вставляется, когда вы щелкаете элемент, такой как ссылка, кнопка или поле.
См. разделы ниже, посвященные контролю ожидания и проверки .
Событие Click взаимодействует с определенным элементом на веб-странице. См. информацию о локаторах ниже, чтобы определить, как следует находить элемент.
Tap
В профилях мобильных устройств (включая планшеты, ноутбуки с сенсорным экраном и пользовательские устройства, указанные как мобильные) событие Tap определяет, где на странице записывать нажатие на экран устройства кончиком пальца. Например, Tap вставляется, когда вы нажимаете на гиперссылку, кнопку или выбираете поле.
При записи на профили мобильных устройств курсор меняется на значок, представляющий собой кончик пальца.
См. разделы ниже, посвященные контролю ожидания и проверки .
Событие Tap взаимодействует с определенным элементом на экране. См. информацию о локаторах ниже, чтобы определить, как следует находить элемент.
Keystroke
Событие Keystroke фиксирует строку, которую вы вводите в поле на веб-странице.
- Строка записывается в Текстовое значение , которое можно редактировать. Весь текст по умолчанию записывается как Простой текст. Однако для паролей, хранящихся в хранилище учетных данных , тип текста — Credentials (Учетные данные). Ключ-АСТРОМ хранит и управляет всеми учетными данными Синтетического мониторинга в хранилище учетных данных. Доступ к учетным данным контролируется, и они могут быть назначены как предназначенные только для владельца или общедоступные. Читайте далее, чтобы узнать, как захватить или установить пароль и как создать токен в событии Keystroke .
Кто может редактировать монитор, имеющий связанные учетные данные?
|
- Имитация клавиши Return автоматически имитирует нажатие клавиши Return после нажатия клавиш, например, для отправки строки поиска или запуска входа в систему. При создании монитора в режиме пользовательского интерфейса это избавляет вас от необходимости настраивать событие Click после ввода данных в поле.
- Моделировать события размытия (включено по умолчанию) определяет, имитируется ли событие размытия, которое обычно происходит, когда текстовое поле теряет фокус.
- См. разделы ниже, посвященные контролю ожидания и проверки .
- Событие Keystroke взаимодействует с определенным элементом на экране, например, с полем формы. См. информацию о локаторах ниже, чтобы определить, как следует находить элемент.
Захват или установка пароля в Keystroke
В событии Keystroke записанный пароль по умолчанию сохраняется как Простой текст. Вы можете Сохранить в хранилище учетных данных — тип данных автоматически изменится на Учетные данные .
Сбрасывайте текстовое значение только в том случае, если вы хотите очистить захваченные учетные данные и преобразовать поле в незашифрованный текст.
Вы также можете использовать другой учетный файл, хранящийся в хранилище, или создать новый в событии Keystroke. Сначала измените тип данных на Credentials .
Вы можете выбрать существующую учетную запись (Выбрать учетные данные). Вы можете видеть только учетные данные, к которым у вас есть доступ в этом списке, то есть публичные учетные данные или учетные данные только владельца, созданные вами.
Вы можете выбрать пары идентификатор/пароль пользователя или учетные данные токена. Обратите внимание на изображение ниже, как используется только пароль из извлеченной пары UID/пароль.
Вы можете создать новые учетные данные , введя Имя пользователя и Пароль. Укажите имя для учетных данных и сохраните их в хранилище . Учетные данные, которые вы создаете таким образом, автоматически устанавливаются на разрешения только владельца и могут использоваться только вами.
Обратите внимание, что у вас должно быть разрешение на доступ к хранилищу учетных данных , чтобы создать учетные данные в режиме скрипта или пользовательского интерфейса в мониторе браузера таким образом. Вы всегда можете захватить введенные учетные данные как часть записанного clickpath.
Создание токена в Keystroke
Вы можете использовать существующий токен, к которому у вас есть доступ в Keystroke. Измените тип текста на Credentials и выберите ID учетных данных, которые вы хотите использовать ( Select credentials ).
Чтобы создать новый токен, выберите Создать новые учетные данные. Выберите Токен в качестве типа учетных данных. Измените имя учетных данных по умолчанию, укажите значение Токена и Сохранить в хранилище. Учетные данные, которые вы создаете таким образом, автоматически устанавливаются как разрешения только для владельца и могут использоваться только вами.
Обратите внимание, что для создания учетных данных в режиме скрипта или пользовательского интерфейса в мониторе браузера таким способом у вас должно быть разрешение на доступ к хранилищу учетных данных.
Выбор опции
Событие Выбор опции описывает использование списков в clickpath.
Индекс описывает положение выбранного элемента сверху; первый элемент в списке всегда аннотируется. Поле Значение показывает текстовое значение выбранного элемента 0
.
Нажмите Добавить еще selection, чтобы добавить еще один элемент для выбора в том же списке. Вы можете удалить выбранные параметры по мере необходимости.
См. разделы ниже, посвященные контролю ожидания и проверки .
Событие Выбор опции взаимодействует с определенным элементом на экране. См. информацию о локаторах ниже, чтобы определить, как следует находить элемент.
JavaScript
Событие JavaScript позволяет выполнять фрагменты JavaScript как часть clickpath вашего браузера.
С помощью событий JavaScript вы можете создавать clickpath для сценариев с некоторыми динамическими частями, где может потребоваться реакция на странице, например:
- Процессы входа в систему, включая случайные контрольные вопросы
- Сложные селекторы дат
- Страницы с использованием A/B-тестирования
- Регистрации или рабочие процессы заказа продукции
- Пользовательские проверки
Выполнение JavaScript на страницах PDF не поддерживается.
Для страниц XML можно включить поддержку, переключившись в режим скрипта и включив "experimentalProperties": [{ "name": "enableXmlInjection", "value": ".*.xml$" } ] Во время выполнения синтетического монитора целевая XML-страница отображается в HTML. |
В предоставленном редакторе определите свой фрагмент JavaScript, целевое окно и стратегию ожидания. API, который позволяет вам сохранять и извлекать значения, управлять результатом события JavaScript или пропускать выполнение, описан ниже.
При добавлении событий вручную или редактировании clickpath вы можете добавить событие JavaScript в качестве первого события монитора для таких случаев использования, как извлечение учетных данных из хранилища учетных данных и настройка переменной для использования в URL-адресе события Navigate. Для этой функции требуются АктивныйШлюз версии 1.225 и Chromium версии 88+ в закрытых расположениях Синтетики.
Событиям Navigate может предшествовать только одно или несколько событий JavaScript; для clickpath требуется как минимум одно событие Navigate.
Если вы перезапишете ваш clickpath с нуля (выбрав Записать снова > От начала clickpath), все события JavaScript, которые предшествуют первому событию Navigate, будут стерты. Вы можете сохранить ваши начальные события JavaScript, выбрав запись после них.
API событий JavaScript
Событие JavaScript предлагает базовый API для следующих операций.
Сохранение и извлечение значений по событиям монитора
api.setValue(key, value)
— Устанавливаетvalue
дляkey
. Используйте отдельный экземплярapi.setValue()
для каждой пары ключ-значение, которую вы хотите указать.api.getValue(key)
— Получает значениеkey
, установленное ранееapi.setValue()
.api.getValues()
—Возвращает объект, содержащий пары ключ-значение, которые были ранее установлены с помощьюapi.setValue()
.
Переменные могут передаваться только в контексте одного выполнения clickpath браузера. Вам также необходимо убедиться, что когда вы ссылаетесь на переменную, данные, стоящие за ней, логически доступны для монитора.
После установки глобальной переменной с помощью метода api.setValue()
вы можете впоследствии применить ее значение, используя соглашение {variable_name}
с api.getValue()
или api.getValues()
. Вы также можете применить значение в последующих полях конфигурации clickpath браузера, используя {variable_name}
соглашение. Пользовательский интерфейс информирует вас, когда это возможно.
Имена переменных и ключей имеют ограничение в 100 символов. Значения глобальных переменных имеют ограничение в 5000 символов.
Отметить события, как проваленные или завершенные
api.fail(message)
—Отмечает запрос как неудачный, указываяmessage
в качестве причины, и отмечает выполнение монитора как неудачное.message
отображается как причина неудачи для выполнения на странице Многомерный анализ .message
Параметр имеет ограничение в 200 символов.api.finish()
— Завершает событие JavaScript, чтобы выполнить следующее событие.api.startAsyncSyntheticEvent()
—Заставляет событие JavaScript ожидать более позднего вызоваapi.finish()
илиapi.fail()
завершить его. Поскольку использование этого метода переопределяет условие ожидания, мы рекомендуем установить время ожидания на None.
Пропустить события clickpath
Эти методы пропускают события после завершения текущего события.
api.skipNextSyntheticEvent()
— Пропускает выполнение следующего события.api.skipNextSyntheticEvents(n)
— Пропускает выполнение следующихn
последовательных событий.api.skipSyntheticEvent(eventIndex)
— Пропускает выполнение события с индексомeventIndex
. Номера индексов событий начинаются с1
и соответствуют номерам событий, отображаемым в веб-интерфейсе.api.skipSyntheticEvents(eventIndexes)
— Пропускает выполнение нескольких событий; массивeventIndexes
указывает индексы событий, которые необходимо пропустить, например,api.skipSyntheticEvents([8, 9])
.
Базовое ведение логов
api.info(message)
— Регистрируетmessage
, используяinfo
уровень логов.api.warn(message)
— Регистрируетmessage
, используяwarning
уровень логов.api.error(message)
— Регистрируетmessage
, используяerror
уровень логов.
Параметр message
имеет ограничение в 200 символов. После локального воспроизведения логов отображается в нижней части веб-интерфейса Ключ-АСТРОМ. Выберите Показать полный журнал. При выполнении мониторов из частных синтетических расположений строки логов (с префиксом [CUSTOM]
) можно найти в файле выполнения теста VUC.
Извлечь данные
api.getCredential(id, type)
— Извлекает значение учетных данных, учитывая идентификатор учетных данных (id
) и (type
), который может бытьusername
,password
илиtoken
. Вы должны предоставить точное значение одного из предложений автозаполнения для идентификатора учетных данных; использование динамических идентификаторов, таких как переменные, не поддерживается. Список состоит только из тех учетных данных, к которым у вас есть доступ . Для частных синтетических местоположений требуется АктивныйШлюз версии 1.212+ .
В целях безопасности мы рекомендуем использовать только специальные тестовые учетные данные для синтетических мониторов. |
api.getContext().location
api.getContext().location.name
— Возвращает имя частного или публичного расположения, из которого выполняется монитор. Это полезно при применении условной логики, например, при отображении локализованных страниц или использовании различных данных для входа в зависимости от расположения.api.getContext().location.cloudPlatform
— Возвращает имя облачной платформы, на которой развернуто публичное синтетическое местоположение . Во время локального воспроизведения свойства контекста не определены. Мы рекомендуем установить значение по умолчанию, чтобы охватить этот сценарий.
Примеры
Пример 1. Создание и настройка динамического адреса электронной почты для мониторинга процесса регистрации.
var email = 'synthetic' + Date.now() + '@example.com';
api.setValue('email', email); document.getElementById('email').value = email; |
Пример 2. Получение случайного имени/фамилии из конечной точки API и установка его во время процесса регистрации.
api.startAsyncSyntheticEvent();
fetch('https://randomuser.me/api/').then((resp) => resp.json()).then(function(data) { document.getElementById('firstName').value = data.results[0].name.first; document.getElementById('lastName').value = data.results[0].name.lastname; api.finish(); }).catch(function(error) { api.fail('Fetch request to randomuser.me failed'); }); |
Пример 3. Использование поставщика облачной платформы для различения местоположений с одинаковым названием.
if (api.getContext().location.name === "Sydney" &&
api.getContext().location.cloudPlatform === "AWS") { document.getElementById("linkAustraliaAWS").click(); } if (api.getContext().location.name === "Sydney" && api.getContext().location.cloudPlatform === "Alibaba") { document.getElementById("linkAustraliaAlibaba").click(); } |
Пример 4. Использование другого идентификатора пользователя в зависимости от местоположения монитора.
В этом примере идентификатор пользователя задается в событии JavaScript и сохраняется в глобальной переменной для последующего использования в скобках ({}
) в поле или путем вызова api.getValue()
. В качестве альтернативы установке переменной для идентификатора пользователя вы также можете вставить учетные данные из хранилища учетных данных.
//Default value for the user ID in case a location not defined below is used
var userid_by_loc = "ValueDoesNotExist"; try { //Get the location name var loc = api.getContext().location.name; api.info("Location Name is: " + loc); //Get the cloud platform the location is hosted in var platform = api.getContext().location.cloudPlatform; api.info("Cloud Platform is: " + platform); //Set the user ID per location if ((loc.indexOf("Los Angeles") >= 0) && (platform.includes("Google Cloud") >= 0)) { userid_by_loc = 'LA_User'; } else if ((loc.indexOf("Oregon") >= 0) && (platform.includes("Google Cloud") >= 0)) { userid_by_loc = 'Oregon_User'; } else if ((loc.indexOf("Chicago") >= 0) && (platform.includes("Azure") >= 0)) { userid_by_loc = 'Chicago_User'; } } catch (err) { api.info("Error message: " + err.description); } //Set a global variable to store the user ID that has been set and use later api.setValue("UserID", userid_by_loc); |
Cookie
Файлы cookie позволяют хранить информацию о состоянии браузера на стороне клиента, чтобы каждое выполнение монитора основывалось на одном и том же состоянии, и вы могли точно отслеживать базовый уровень производительности.
Вы можете установить файлы cookie в дополнительных параметрах при создании монитора браузера или в расширенных настройках в параметрах монитора в режиме редактирования. Эти файлы cookie действительны для всего выполнения монитора. Если вы хотите установить файлы cookie только для определенной части вашего пути клика, используйте событие Cookie.
В режиме редактирования выберите Set cookies , затем укажите Name и Value. Каждый cookie должен быть уникальным в списке.
В значении cookie не допускаются следующие символы: ;,\"
. Укажите домен cookie и, при желании, путь к cookie. Сохраните ваш cookie.
Выберите Добавить cookie , чтобы определить дополнительные файлы cookie.
Общие элементы управления
В этом разделе описываются элементы управления, общие для нескольких типов событий.
Время ожидания до срабатывания следующего события
Хотя Ключ-АСТРОМ автоматически выбирает подходящее время ожидания для каждого события, вы можете настроить этот параметр, чтобы определить, как долго Ключ-АСТРОМ должен ждать перед выполнением следующего события.
- None
- Wait for page to load complete — ждет завершения сетевой активности после запуска события загрузки. Это время ожидания по умолчанию (60 секунд), используемое при загрузке новой страницы.
- Wait for specific period of time позволяет указать количество секунд, которое Ключ-АСТРОМ должен ждать между данным событием и следующим.
- Wait for background network activity to complete ожидает завершения всей сетевой активности после события. Это время ожидания по умолчанию, используемое для XHR и взаимодействий в одностраничных приложениях. Эта опция недоступна для событий Navigate.
- Wait for specific element to appear позволяет вам ждать определенный элемент HTML на странице, указав локатор CSS или DOM для элемента. Вы также можете указать текст для проверки в элементе и тайм-аут для поиска элемента.
- Wait for next event ждет, пока не будет найден один из локаторов следующего события. Это то же самое, что Wait for specific element to appear, но автоматически использует локаторы следующего события.
Обязательно укажите время ожидания, которое не превышает запрограммированные значения тайм-аута для clickpath браузера (см. ниже). При превышении этих тайм-аутов возникнет проблема.
Эти тайм-ауты нельзя изменить в веб-интерфейсе Ключ-АСТРОМ. Однако вы можете использовать запрос метода конфигурации PUT API конфигурации Синтетики v2, чтобы изменить тайм-ауты монитора браузера в вашей среде для выполнения в частных расположениях, локального воспроизведения и времени ожидания. На изображении ниже показано событие Navigate после того, как глобальный тайм-аут был изменен через API с 60 секунд до 150 секунд. |
Проверка контента
Проверка содержимого помогает проверить, загружает ли ваш браузер ожидаемый контент страницы или элемент. Проверки выполняются с помощью правил проверки: выберите Добавить правило проверки содержимого , чтобы определить правило проверки.
В clickpath браузера вы определяете проверки для каждого события; для мониторов с одним URL-адресом, содержащих одно событие, вы определяете проверку для монитора в целом.
Проверка выполняется после прохождения всех перенаправлений, даже если самый первый ответ содержит HTML-контент.
Вы можете выполнить проверку на основе определенного текста на веб-странице, определенного элемента, текста, включенного в элемент, или текста в DOM или любом ресурсе. Вы можете выбрать прохождение или провал вашего монитора/события на основе ваших критериев проверки. Если критерии прохождения не выполнены (или выполнены критерии провала), монитор/событие терпит неудачу и выполнение прерывается.
Целевое окно определяет вкладку, в которой находится текст/элемент. window[0]
является первой открытой вкладкой , а window[1]
представляет вторую вкладку. Также может быть window[N].frames[X]
где X
является номером iframe
, который отображается на странице N
в tab. Фреймы также могут быть связаны, window[N].frames[X].frames[Y]
что означает, элементы с заданными локаторами находятся внутри рамки Y
, которая находится внутри рамки X
на вкладке N
.
Вы также можете использовать заполнитель в значении окна «Цель» , например window[0].frames[{index}]
, где {index}
— переменная, определенная ранее с помощью метода api.setValue()
в событии JavaScript .
Если ваша проверка основана на видимом тексте (содержит видимый текст), тексте, найденном в определенном элементе (содержит текст в элементе), или тексте разметки в DOM или ресурсе (содержит текст в DOM или любом ресурсе), вам необходимо Указать текст (без учета регистра). Заключите значения заполнителей в скобки, например, {email}
. При желании вы можете указать текст как регулярное выражение.
Если ваша проверка ищет элемент (содержит элемент) или текст, найденный в определенном элементе (содержит текст в элементе), вам необходимо указать селекторы CSS или локаторы DOM для использования во время воспроизведения: выберите Добавить локатор , затем выберите DOM или CSS и укажите ссылку на локатор. При вставке строки локатора обязательно удалите все символы >
.
Вы можете добавлять и переупорядочивать столько локаторов, сколько захотите. Проверка выполняется в порядке, который вы определяете, пока не будет найден локатор.
Вы можете добавлять и изменять порядок более одной проверки для события/монитора. Проверка выполняется в порядке, который вы определяете; если какое-либо из правил не выполняется, монитор не выполняется.
Редактировать локаторы элементов
Этот элемент управления доступен в событиях Click , Tap , Keystroke и Выбор опции .
Когда одно из вышеперечисленных событий в вашем clickpath нацелено на определенный элемент на веб-странице, вы можете просматривать и редактировать локаторы элементов в формате DOM или CSS. Локаторы помогают Ключ-АСТРОМ идентифицировать элемент во время воспроизведения. Мы можем захватывать несколько локаторов, чтобы убедиться, что элемент найден, даже если некоторые части кода страницы (например, имена или идентификаторы) изменяются. В большинстве случаев мы захватываем локаторы CSS. Локаторы оцениваются последовательно; если первый локатор не найден, оценивается второй и так далее, пока не будет совпадения.
Выберите Добавить локатор , затем выберите DOM или CSS и укажите ссылку на локатор. См. Формат локатора DOM ниже для получения дополнительной информации об указании локаторов DOM.
Вы можете добавить столько локаторов, сколько захотите. Вы также можете редактировать или удалять любые существующие локаторы для вашего элемента.
Целевое окно определяет вкладку, в которой находится текст/элемент. window[0]
является первой открытой вкладкой , а window[1]
представляет вторую вкладку. Также может быть window[N].frames[X]
где X
является номером iframe
, который отображается на странице N
в tab. Фреймы также могут быть связаны, window[N].frames[X].frames[Y]
что означает, элементы с заданными локаторами находятся внутри рамки Y
, которая находится внутри рамки X
на вкладке N
.
Вы также можете использовать заполнитель в значении окна «Цель» , например window[0].frames[{index}]
, где {index}
— переменная, определенная ранее с помощью метода api.setValue()
в событии JavaScript.
Формат локатора DOM
Ключ-АСТРОМ версии 1.292+
Вы можете предпочесть настроить расширенные, пользовательские локаторы DOM для своих элементов. Правила ниже определяют поддерживаемый формат при использовании JavaScript в локаторах DOM для доступа к элементам на веб-странице. Эти правила необходимы в связи с переходом Key-Astrom Synthetic Recorder (расширение браузера Google Chrome) на Manifest Version 3 (MV3), которая является последней итерацией платформы расширений Chrome.
- Чтобы идентифицировать элемент , вы можете выполнить одно из следующих действий.
- Начните локатор DOM с
document.
- Начните локатор DOM с
document.forms[0][1].options[0]
document.getElementById('adminusername') document.querySelector("body > div.vf-body-container > div > div > section > flows").shadowRoot.querySelectorAll("#postalTown")[1] |
Например, document.getElementById('adminusername')
— это способ доступа к элементу по идентификатору элемента; getElementById
— это метод document
.
- Или
- Используйте допустимое имя глобальной переменной JavaScript в начале вашего локатора DOM для прямого доступа к элементу по его идентификатору. Имя переменной должно содержать ссылку на элемент с соответствующим идентификатором. Например, для элемента
<div id="EmailAddress"></div>
можно указать следующий локатор DOM.
- Используйте допустимое имя глобальной переменной JavaScript в начале вашего локатора DOM для прямого доступа к элементу по его идентификатору. Имя переменной должно содержать ссылку на элемент с соответствующим идентификатором. Например, для элемента
EmailAddress |
- Поддерживаются выражения XPath . Ваш локатор DOM , начинающийся с
document.
может содержать выражение XPath в параметре методаxpathExpression
. В примере ниже выражение XPath —evaluate()
'//form[@id=\\'ctl00\\']/div[4]/div[3]/span'
document.evaluate('//form[@id=\\'ctl00\\']/div[4]/div[3]/span', document, null, XPathResult.ANY_TYPE, null).iterateNext() |
- Локатор DOM должен представлять собой цепочку (последовательность) вызовов методов, свойств или сигнатур индексов , как показано в примерах ниже.
document.method().method1()
document.method().prop['2565'] document.method( 11 , 'erert','123') document.getElementById('deviceList').querySelectorAll('a')[0] |
- Аргументами вызова метода могут быть любые из следующих; см. примеры ниже.
- Строки в двойных или одинарных кавычках
- Числа
null
undefined
document
XPathResult.*
document.method("str1")
document.method('str2', null) document.method(undefined, document) document.method(XPathResult.ANY_TYPE) |
- Вычисления Javascript не поддерживаются внутри локаторов DOM.
// Not supported
document.forms[1+2] |
- Глобальные переменные Javascript не поддерживаются внутри локаторов DOM.
// Not supported, where someVar is a global variable
document.querySelector(someVar) |