Python Selenium: загрузка файлов через заполнение форм

Мне нужно загрузить xml-файлы с веб-сайта (https://data.gov.in/catalog/variety-wise-daily-market-prices-data-cauliflower), где я должен щелкнуть гиперссылку, которая приведет к заполнению и отправке формы, чтобы начать загрузку. Я создал код с помощью selenium webdriver. Код выполняется до момента доступа к веб-странице и нажатия на гиперссылку xml, но прекращает выполнение остальных функций (нажатие переключателя и флажков, заполнение текста и нажатие кнопки отправки) для завершения загрузки. Пожалуйста, дайте мне знать, если я упускаю какие-либо функции в моем коде, которые могут привести к этой проблеме. Любое предложение / помощь будут высоко оценены. Спасибо.

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", "F:\Projects\Poli_Map\DatG_Py_Dat")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/xml")

driver = webdriver.Firefox(firefox_profile=fp)
driver.get('https://data.gov.in/catalog/variety-wise-daily-market-prices-data-cauliflower')

driver.find_element_by_xpath('//*[@title="xml (Open in a new window)"]').click()

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


@staticmethod
def submit(self):
                driver.find_element_by_xpath('//input[@type = "submit" and @value = "Submit"]').click()
                data = {
                    'name_d': 'abc',
                    'mail_d': '[email protected]',
                }
                FormPage().fill_form(data).submit(self)
                driver.quit()

person Cashi    schedule 12.10.2017    source источник
comment
У вас тут куча ошибок. Начиная с отступа... Ваш submit() должен быть частью класса FormPage(), если я правильно понял... Вы также вызываете сам класс внутри submit(), но вызываете ли вы класс вообще в своем скрипте (иначе fill_form() и submit() выиграли? никогда не срабатывать)?   -  person errata    schedule 12.10.2017