Я пытаюсь автоматизировать загрузку файла на форуме XenForo, используя python и Selenium.
Кнопка загрузки может быть идентифицирована только по классу, но когда я отправляю путь к файлу, как показано ниже, вместо этого открывается вкладка поиска и к ней добавляется путь. Похоже, кнопка загрузки вызывает другой скрипт. upload.send_keys ("Path / tofile.txt")
HTML Код кнопки загрузки.
<a href="/index.php?attachments/upload&type=post&context[node_id]=75&hash=d0e6e691eb0e1ef823adfb8e8905a542" class="button--link js-attachmentUpload button button--icon button--icon--attach" target="_blank" data-accept=".zip,.txt,.pdf,.png,.jpg,.jpeg,.jpe,.gif,.torrent"><span class="button-text">Attach files</span></a>
Python код.
url = "somewebsite.com"
options = Options()
# options.headless = True
driver = webdriver.Firefox(options=options, executable_path=gecko_driver)
driver.get(url)
#waiting for page to load
sleep(5)
#entering title
title = driver.find_element_by_name("title")
title.clear()
title.send_keys("title")
#entering description
des = driver.find_element_by_class_name("fr-element.fr-view")
des.clear()
des.send_keys("description")
sleep(2)
#attempting to upload
test = driver.find_element_by_class_name("button--link.js-attachmentUpload.button.button--icon.button--icon--attach")
print("button text = " + test.text)
upload.send_keys("Path/tofile.txt")
элемент select правильный, как будто я печатаю текст элемента, он печатает текст на кнопке, и если я щелкаю по нему, появляется диалоговое окно для выбора файла для загрузки. Так что у меня определенно есть правильный элемент. Я пытался найти альтернативные способы загрузки, но, похоже, библиотеки, такие как "autoit", "pywinauto" и "win32com.client", не поддерживаются в Ma c или Linux.
Я делаю я не получаю никаких ошибок при отправке пути, как вы можете видеть из видео по этой ссылке, открывается диалоговое окно поиска и там указывается путь.
https://imgur.com/wXEhckl
Вывод на консоль
button text = Attach files
Process finished with exit code 0