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')

Это то, что я пытаюсь использовать в настоящее время.

Сайт работает так:

  1. Страница входа перенаправляет на другую форму, которая позволяет мне выбрать отчет для создания.
  2. Я хочу все варианты по умолчанию, поэтому я просто снова отправляю страницу.
  3. Затем я захожу на другую страницу, которая генерирует отчет, а затем принудительно загружает файл.

redirect_output не сохраняет файл xls.

save_html сохраняет информацию, НО она что-то портит и Excel не может ее прочитать вообще. Я использую kdiff для проверки любых различий, он утверждает, что есть много, но данные слева / справа идентичны, задаваясь вопросом, если это проблема с окончаниями строк... и т. Д. Не уверен на 100%.

Я проверил страницу команд на веб-сайте Твилла, но я не уверен, как это сделать.

1 ответ

Решение

Как я и подозревал, это была проблема с окончанием строки. Изменена функция save_html для твилла, чтобы она записывалась как 'wb' вместо 'w', все хорошо.

Другие вопросы по тегам