Невозможно выбрать n-й элемент того же класса с IDE xpath / selenium - PullRequest
0 голосов
/ 13 октября 2018

Не понимаю, почему следующий цикл не работает, за исключением того, что n-й элемент с тем же классом не работает на 2-м элементе (я предполагаю, что 1-й элемент работает, потому что это также корень в xpath):

{
  "Command": "storeEval",
  "Target": "$('.className').length",
  "Value": "max"
},
{
  "Command": "store",
  "Target": "1",
  "Value": "i"
},
{
  "Command": "while",
  "Target": "(${i} < ${max})",
  "Value": ""
},
{
  "Command": "echo",
  "Target": "Current value of i = ${i}",
  "Value": "i"
},
{
  "Command": "storeAttribute",
  "Target": "//a[contains(@class, 'className')][${i}]@href",
  "Value": "link"
},
{
  "Command": "endWhile",
  "Target": "",
  "Value": ""
}

Для отладки я попытался изменить ...[${i}] на [2], и это не удалось как с Kantu, так и с Ranorex Selocity.Однако из моего прочтения документации по xpath / Selenium IDE этот синтаксис должен быть правильным.Любой совет?

PS.Для справки, .className на самом деле .rf-project-cover__title на странице https://www.behance.net/search?field=132&content=projects&sort=published_date&time=week

1 Ответ

0 голосов
/ 14 октября 2018

Я думаю, что вы хотите выполнить поиск, затем извлечь i -й элемент, поэтому вам нужны скобки:

(//a[contains(@class, 'className')])[${i}]

, например:

(//a[contains(@class, 'rf-project-cover__title')])[2]

возвращает элемент с текстом ссылкиmy portfolio

...