Python Селен нажмите на кнопку, используя find_element_by - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь вычеркнуть несколько речей из https://www.federalreserve.gov/newsevents/speeches.htm и, чтобы сделать это автоматически, мне нужно нажать на кнопку «Далее», чтобы очистить все страницы.

К сожалению, я продолжаю получать NoSuchElementException, независимо от типа find_element_by, который я использую (by_xpath, by_css_selector, ...). Я также пробовал с driver.execute_script(), но это не сработало.

Вот то, что я пробовал для XPath и CSS селектор:

driver.find_element_by_css_selector("li.pagination-next:nth-child(11) > a:nth-child(1)")
driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[4]/ul[1]/li[11]/a')

Вот код HTML кнопка:

<li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next ng-scope">
<a href="" ng-click="selectPage(page + 1, $event)" ng-disabled="noNext()||ngDisabled" uib-tabindex-toggle="" class="ng-binding">Next</a>
</li>

1 Ответ

0 голосов
/ 03 апреля 2020

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

next_button = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//a[text()='Next']")))
next_button.click()

Вам необходимо добавить следующий импорт:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...