Проблемы с поиском Боттона на BeautifulSoup Python - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь нажать кнопку на веб-странице, но не могу найти ссылку. Мой код следующий:

from bs4 import BeautifulSoup
from selenium import webdriver

browser = webdriver.Chrome() 
ref = 'https://www.leychile.cl/Consulta/buscador_experto'

browser.get(ref)

python_button = browser.find_element_by_xpath("//input[@type='button'][@value='Buscar']")
search_box = browser.find_element_by_name("palabra_frase")
search_box.send_keys("Alcaldesa")
time.sleep(1)
python_button.click()
page = BeautifulSoup(browser.page_source) 
continue_link = page.find_element_by_link_text('Siguiente')

На этой новой веб-странице я пытаюсь нажать кнопку "Siguiente"

Когда я проверяю веб-страницу, появляется следующая ссылка

<a href="javascript:Paginar2(87)"> Siguiente › </a>

но BeautifulSoup не показывает мне эту кнопку, поэтому я не могу нажать кнопку.

1 Ответ

0 голосов
/ 31 января 2020

Чтобы изменить страницы, вы можете сделать следующее:

browser = webdriver.Chrome()
ref = 'https://www.leychile.cl/Consulta/buscador_experto'

browser.get(ref)

python_button = browser.find_element_by_xpath("//input[@type='button'][@value='Buscar']")
search_box = browser.find_element_by_name("palabra_frase")
search_box.send_keys("Alcaldesa")
time.sleep(1)
python_button.click()
browser.execute_script("javascript:Paginar2(2)")

Объяснение:

Когда вы просматриваете код, вы видите, что есть скрипт javascript, который изменяет страницы в этой части кода :

<span class="avanzar_resultados" name="paginador2" nitemsporpagina="10" 
pagina="1" totalitem="1781">1 - 10 de 1781<a href="javascript:Paginar2(2)"> 
Siguiente › </a><a href="javascript:Paginar2(179)"> Última » </a></span>

Так что вы можете позвонить. Для произвольной страницы вы просто звоните:

browser.execute_script("javascript:Paginar2(n)"

Тест:

Если вы затем запустите:

page = BeautifulSoup(browser.page_source)
page.find('span', {'class':'uppercase'}).text

Вы получите '\nDecreto 743 EXENTO\n' (страница 2) вместо '\nResolucion 65 EXENTA\n' (страница 1)

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