Селен получить следующий брат - PullRequest
0 голосов
/ 11 февраля 2020

У меня более или менее такая структура. Как я могу выбрать следующий элемент после title? Начальная точка должна быть x или y, так как структура имеет дублированные классы и т. Д., И этот является уникальным якорем. Просто чтобы уточнить, мне нужно поймать содержание, а ссылка - это заголовок.

x = wd.find_elements_by_class_name('title')[0] // print title 0
y = wd.find_elements_by_class_name('title')[1] // print title 1

HTML:

<div class='global'>
    <div class="main">
        <p class="title">Title0</p>
        <p class="content">Content0</p>
    </div>

    <div class="main">
        <p class="title">Title1</p>
        <p class="content">Content1</p>
    </div>
</div>

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Если вы используете селен, попробуйте использовать селектор css, чтобы получить тег p на основе заголовка класса.

driver.find_elements_by_css_selector (". Title + p")

Чтобы получить значение контента.

for item in driver.find_elements_by_css_selector(".title+p"):
    print(item.text)
0 голосов
/ 11 февраля 2020

Для Specifi c Элемент:

driver.find_element(By.XPATH, '(//p[@class()="title"]/following-sibling::p)[1]'  #Content0

driver.find_element(By.XPATH, '(//p[@class()="title"]/following-sibling::p)[2]'  #Content1

Для всех элементов:

for content in driver.find_elements(By.XPATH, '//p[@class()="title"]/following-sibling::p'):
    print(content.text)
...