Я пытаюсь загрузить фото на vk.com с помощью модуль QtWebKit. Проблема, с которой я столкнулся, заключается в невозможности правильно заполнить значение input(type="file")
. Вот некоторый связанный код, который я использую:
def upload():
print 'uploading...'
photoInput = web.page().mainFrame().documentElement().findFirst('input[id="photos_upload_input"]')
assert photoInput, 'No input found'
photoInput.setAttribute('value', '/Users/elmigranto/Downloads/stuff.png')
print photoInput.evaluateJavaScript('return this.value;').toString()
Разумно отметить, что заполнение значения файлового ввода невозможно из Javascript из-за политики безопасности браузера. Однако это должно быть возможно с использованием Qt API, а именно QWebElement
::
setAttribute()
. Что я и сделал… безрезультатно (ну, photoInput.attribute('value')
возвращает ожидаемый результат, а photoInput.evaluateJavaScript('return this.value;').toString()
возвращает пустую строку, обработчик ввода onchange
тоже не срабатывает).
Установка других атрибутов не проблема, например, QWebElement
::
addClass()
прекрасно работает.
Любая помощь будет очень кстати.
Спасибо.