Как я могу нажать кнопку под текстом, используя Selenium lib. в Python - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу создать бота, который любит комментарии на веб-странице. Под комментарием есть кнопка «Нравится» и «Не нравится».

xPath комментария: //*[@id="commentText-40538697"]/span

xPath кнопки «Мне нравится»:

//*[@id="commentText-40538697"]/div[2]/div[1]/label[1]

Как вы можете видеть, получил ли я идентификатор комментария (в приведенном выше примере это 40538697) я могу легко нажать на кнопку. Кнопка идентификатор меняется для каждого комментария. Поэтому я получаю элемент, используя следующий код

xpath = driver.find_element_by_xpath("//*[contains(text(), 'COMMENT')]")

- также свойство взятого элемента.

xpath.get_property Out [113]:>

Есть ли способ получить идентификатор id указанного c текста на веб-странице?

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете попробовать ниже xpath, чтобы извлечь комментарий на основе ключевых слов. Также вы можете использовать следующий брат, чтобы проверить наличие шоу больше и нажать на него

YourText="Fikrini empoze"

//div[@class='js-comments-wrapper commentsWrapper']//div[@class="comment js-comment"]//div[@class="js-text-wrapper commentText"][contains(.,'"+YourText+"')]

показать больше текста

//div[@class='js-comments-wrapper commentsWrapper']//div[@class="comment js-comment"]//div[@class="js-text-wrapper commentText"][contains(.,'Fikrini empoze')]//following-sibling::span[@class='showMoreText']

кнопка «Мне нравится»:

//div[@class='js-comments-wrapper commentsWrapper']//div[@class="comment js-comment"]//div[@class="js-text-wrapper commentText"][contains(.,' Fikrini empoze')]//following-sibling::label[@class='like']

нелюбовь

//div[@class='js-comments-wrapper commentsWrapper']//div[@class="comment js-comment"]//div[@class="js-text-wrapper commentText"][contains(.,' Fikrini empoze')]//following-sibling::label[@class='dislike']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...