Как найти последний элемент внутри того же самого div в селене python - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь найти последний элемент внутри div, распечатать его на консоли и ждать, пока будет сгенерирован следующий элемент, используя selenium. Я пытался для циклов и пока, но они не работают. Кроме того, он выбирает только первый. Я хочу выбрать каждый раз, когда последний.

В приведенном ниже примере:

    <div class="row">
        <div class="col">
            This is the first text
        </div>
    </div>

    <div class="row">
        <div class="col">
            This is the second text
        </div>
    </div>

Я хочу найти каждый раз This is the second text, а если генерирует другой This is the third text и так далее. Я пробовал это, но это не работает. myText = browser.find_element_by_xpath("//div[@class='col']").text

Пожалуйста, по крайней мере, псевдокод для этого l oop в python.

Как написать простой python код для этого, который получает последний текст и печатает его на консоль. а затем ждет, пока другой генерирует и т. д.

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Вы можете извлечь все элементы в списке, используя xpath, а затем выбрать последний элемент из этого списка, используя [-1] индекс этого списка.
Вы можете сделать это следующим образом:

# Fetching all the elements in a list
WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@class='col']")))
text_list = driver.find_elements_by_xpath("//div[@class='col']")  

# Fetching the text of last element
last_text = text_list[-1].text
0 голосов
/ 14 марта 2020

Чтобы найти последний элемент с селектором CSS, используйте: last-child в вашем случае 'div [class = "col"]: last-child' https://www.w3schools.com/cssref/css_selectors.asp

С Xpath вы можете использовать этот селектор [last ()], чтобы получить последний элемент https://www.w3schools.com/xml/xpath_syntax.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...