Как отлаживать и использовать grabAttributeFrom в codeceptjs? - PullRequest
0 голосов
/ 21 февраля 2019

В моем случае все идентификаторы на странице генерируются динамически.Так что я не могу использовать xpath.

Я нашел метод в документации: grabAttributeFrom.

  • Как я могу видеть, что внутри, когда я использую cmd в -режим отладки?
  • Могу ли я использовать grabAttributeFrom для извлечения xpath из страницы при поиске входных данных?
  • Как я могу получить доступ к входам, которые имеют имя, и они генерируют xpath динамически, а я не могуиспользовать xpath?

Я попробовал этот код:

I.fillField(locate('input').inside('.jq-panel-body-default').at(2),'John');

, но он работает неправильно и генерирует исключение:

 FAIL  Field "{"type":"xpath","output":null,"strict":true,"locator":{"xpath":".//input[ancestor::*[contains(concat(' ', normalize-space(./@class), ' '), ' jq-panel-body-default ')]][position()=2]"},"value":".//input[ancestor::*[contains(concat(' ', normalize-space(./@class), ' '), ' jq-panel-body-default ')]][position()=2]"}" was not found by text|CSS|XPath

1 Ответ

0 голосов
/ 21 февраля 2019
  1. Как я могу видеть, что внутри, когда я использую cmd в режиме --debug?

Внутри .. что?Если вы хотите записать значение атрибута, возьмите его и зарегистрируйте:

Scenario("test", async (I) => {
  ...
  const attributeValue = await I.grabAttributeFrom(<locator>, <attribute>);
  console.log(attributeValue);
  ...
});
Могу ли я использовать grabAttributeFrom для извлечения xpath из страницы при поиске входных данных?

grabAttributeFrom - для получения значения атрибутов, а не для поиска xpath.Но если вы спросите, можете ли вы использовать xpath в качестве аргумента локатора, да, вы можете.

Как я могу получить доступ к входам, которые имеют имя и они генерируют xpath динамически, а я не могу использовать xpath?

Этого недостаточно, чтобы спросить вас.Поделитесь частью DOM или чем-то, чтобы понять.Если вы имеете в виду атрибут name, вы можете использовать фильтрацию по имени: //input[@name="<your element name>"]

...