Выберите элемент с повторяющимся именем класса с селеном - PullRequest
1 голос
/ 20 июня 2020

<ul class="k9GMp ">
  <li class="Y8-fY "><span class="-nal3 "><span class="g47SY ">2</span> posts</span>
  </li>
  <li class="Y8-fY "><a class="-nal3 " href="/username/followers/" tabindex="0"><span class="g47SY " title="590">590</span> followers</a></li>
  <li class="Y8-fY "><a class="-nal3 " href="/username/following/" tabindex="0"><span class="g47SY ">479</span> following</a></li>
</ul>

Привет, selenium noob здесь работает в Python. Я хочу открыть страницу подписчиков в Instagram (чтобы увидеть, сколько людей подписано на меня), и мне кажется, что posts, followers и following имеют одинаковые имена классов из <li>, <span>, <span> (простите за плохой HTML, не по моей специальности).

-Я пробовал использовать driver.find_element_by_link_text('/username/followers/') и получил NoSuchElementException

Я так понимаю, что есть аналогичный вопрос в java здесь, однако это мне не помогает, так как мне это нужно в Python.

Кроме того, страница подписчиков на instagram.com представляет собой всплывающее окно на URL-адресе instagram.com/username/followers/, однако, если вы перейдете по этому URL-адресу, вы автоматически перенаправитесь на instagram.com/username/

Пожалуйста, дайте мне знать:

а. Почему мой код link_text не работает (да, я понимаю, что это не полная ссылка, но это то, что было в HTML как href)

b. Как я могу открыть страницу / всплывающее окно подписчика из селена?

1 Ответ

0 голосов
/ 20 июня 2020

Попробуйте следующее:

e = driver.find_element_by_xpath("//a[@class='-nal3' and contains(text(),'followers')]").click()
...