Загрузите файл PDF внутри pdfview, используя python / selenium - PullRequest
0 голосов
/ 11 марта 2019

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

Ps: кнопка печати работает, но она не решает мою проблему.

Код:

driver = webdriver.Chrome()
driver.implicitly_wait(2) #seconds
print('API | Acessando ' + row[i])
driver.get(row[i]) # row[i] is the website link
select = Select(driver.find_element_by_name('cmbGrupo'))
select.select_by_value('PDF|1653')
#PDF|1653 - Relatorio de Adminstracao
#PDF|412 - Notas Explicativas

wait = WebDriverWait(driver, 2)
# Select frame
report= driver.find_element(By.XPATH, ('//*[@id="iFrameFormulariosFilho"]'))
driver.switch_to.frame(report)

# Search second frame
pdfview = driver.find_element(By.XPATH, ('//*[@id="pdfViewer"]'))
driver.switch_to.frame(pdfview)
download = driver.find_element(By.XPATH, ('//*[@id="download"]'))
download.click()

1 Ответ

0 голосов
/ 11 марта 2019
  1. Вы можете использовать java script click.
  2. Затем перейдите в каталог загрузки для проверки загруженного файла.
  3. Пожалуйста, очистите папку загрузки с помощью afterclass или afternethod.
driver = webdriver.Chrome()
driver.implicitly_wait(2) #seconds
print('API | Acessando ' + row[i])
driver.get(row[i]) # row[i] is the website link
select = Select(driver.find_element_by_name('cmbGrupo'))
select.select_by_value('PDF|1653')
#PDF|1653 - Relatorio de Adminstracao
#PDF|412 - Notas Explicativas

wait = WebDriverWait(driver, 2)
# Select frame
report= driver.find_element(By.XPATH, ('//*[@id="iFrameFormulariosFilho"]'))
driver.switch_to.frame(report)

# Search second frame
pdfview = driver.find_element(By.XPATH, ('//*[@id="pdfViewer"]'))
driver.switch_to.frame(pdfview)
download = driver.find_element(By.XPATH, ('//*[@id="download"]'))
((JavascriptExecutor)driver).executeScript("arguments[0].click();", download

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