Python 2.7 с использованием твилла, сохраняя загруженный файл правильно
import twill
twill.commands.agent("Mozilla/5.0 (Windows NT 6.2; WOW64; rv:15.0) Gecko/20120910144328 Firefox/15.0.2")
twill.commands.go('loginpage...')
twill.commands.fv("1", "txtUserName", "username")
twill.commands.fv("1", "txtPassword", "password")
# Login Page
twill.commands.submit()
# Pre Registration Report Selection
twill.commands.submit()
# Generate and download the report.
twill.commands.go("ReportGenerator.ashx")
print "Done!"
twill.commands.redirect_output('PreRegistration.xls')
#twill.commands.save_html('PreRegistration.xls')
Это то, что я пытаюсь использовать в настоящее время.
Сайт работает так:
- Страница входа перенаправляет на другую форму, которая позволяет мне выбрать отчет для создания.
- Я хочу все варианты по умолчанию, поэтому я просто снова отправляю страницу.
- Затем я захожу на другую страницу, которая генерирует отчет, а затем принудительно загружает файл.
redirect_output не сохраняет файл xls.
save_html сохраняет информацию, НО она что-то портит и Excel не может ее прочитать вообще. Я использую kdiff для проверки любых различий, он утверждает, что есть много, но данные слева / справа идентичны, задаваясь вопросом, если это проблема с окончаниями строк... и т. Д. Не уверен на 100%.
Я проверил страницу команд на веб-сайте Твилла, но я не уверен, как это сделать.
1 ответ
Решение
Как я и подозревал, это была проблема с окончанием строки. Изменена функция save_html для твилла, чтобы она записывалась как 'wb' вместо 'w', все хорошо.