найдите элемент под тегом <ul><li> <a>"некоторый текст" </a> </li> </ul>, как показано на рисунке - PullRequest
0 голосов
/ 19 февраля 2020

Это код HTMl, я хочу получить «1» и т. Д. Для всех значений, записанных во вложенных тегах <li> <a>

This is the HTMl code, I want to get tags">

Я пытался

total = driver.find_element_by_xpath("//a[text()='...']/following-sibling::a").text

и

totl = WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.XPATH, "//div[@class='ng-binding']")))
print (totl.text)

но ничего не работает. Это будет отличной услугой, если вы отпустите меня.

1 Ответ

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

Чтобы получить текст, WebElement должен быть видимым, поэтому дождитесь видимости всех элементов. Примеры кода для получения всех a элементов (total - это list WebElements):

total = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'ul[uib-pagination] li a')))

# or

total = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'li.pagination-page a')))

Чтобы получить текст из total:

# texts of all links in total
total_texts = [element.text from element in total]
print(total_texts)

# text of the first one
first_page_number = total[0].text

# text of the last one
last_page_number = total[-1].text
...