여러 다운로드 링크가있는 웹 페이지에서 다운로드 반복을 수행하기 위해이 코드를 컴파일했습니다. 다운로드 링크를 클릭하면 웹 페이지가 생성되어 다운로드를 위해 제출하고 제출해야합니다. 나는 '시도'에서 코드 및 얼굴 문제를 실행 해 보았습니다. & '예외'블록 코드 (오류 : 너무 광범위한 예외 조항)와 끝에 '제출'과 관련된 오류가 있습니다 (오류 : 둘 다 결과적으로 'SyntaxError : invalid syntax'가 발생합니다. 모든 제안/도움을 많이 주시면 감사하겠습니다. 고맙습니다.Python Selenium 웹 페이지 채우기 : 링크에서 데이터를 다운로드하려면
import os
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-msdos-program")
driver = webdriver.Firefox(firefox_profile=fp)
driver.get('http://def.com/catalog/attribute')
#This is to find the download links in the webpage one by one
i=0
while i<1:
try:
driver.find_element_by_xpath('//*[@title="xml (Open in a new window)"]').click()
except:
i=1
#Once the download link is clicked this has to fill the form for submission which fill download the file
class FormPage(object):
def fill_form(self, data):
driver.find_element_by_xpath('//input[@type = "radio" and @value = "Non-commercial"]').click()
driver.find_element_by_xpath('//input[@type = "checkbox" and @value = "R&D"]').click()
driver.find_element_by_xpath('//input[@name = "name_d"]').send_keys(data['name_d'])
driver.find_element_by_xpath('//input[@name = "mail_d"]').send_keys(data['mail_d'])
return self
def submit(self):
driver.find_element_by_xpath('//input[@value = "Submit"]').click()
data = {
'name_d': 'abc',
'mail_d': '[email protected]',
}
FormPage().fill_form(data).submit()
driver.quit()