Использование селена CSS селектор для нескольких вещей - PullRequest
0 голосов
/ 05 августа 2011

Это в Perl, если это имеет значение.У меня есть несколько списков ссылок, которые сворачиваются и расширяются.Я знаю, сколько есть от использования

get_xpath_count('//li/a')

Проблема в том, что мне нужно получить список имен этих реальных ссылок.Я пытался использовать xpath, но не нашел много удачи и надеялся, что CSS-селекторы смогут помочь.Я попытался использовать

get_text('css=li a:nth-child('.$i.')'

, который печатает значок [-] рядом со ссылкой, самую верхнюю ссылку в списке, а затем ошибку вне диапазона.Я не знаком с CSS-селекторами вообще, поэтому любая помощь будет отличной.Если я пропустил важную информацию, пожалуйста, дайте мне знать,

1 Ответ

2 голосов
/ 09 августа 2011

Попробуйте это (в псевдокоде, потому что я избегаю Perl как чума):

list linkNames;
count = selenium.get_xpath_count('//li/a');
for (i = 1; i <= count; i++) {
   list.append(selenium.get_text('xpath=(//li/a)[' + i +']');
}

Примечание:

  • Выражения XPath считаются от 1 до n, а не от 0 до n-1, как большинство языков, производных от C.
  • Форма XPath для выбора i-го совпадения шаблона: (pattern)[i], а не pattern[i].
  • Selenium не предполагает, что локатор (pattern)[i] является XPath, поэтому вам нужно сказать это, начав его с xpath=.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...