Мне нужно загрузить 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()
submit()
должен быть частью классаFormPage()
, если я правильно понял... Вы также вызываете сам класс внутриsubmit()
, но вызываете ли вы класс вообще в своем скрипте (иначеfill_form()
иsubmit()
выиграли? никогда не срабатывать)? - person errata   schedule 12.10.2017