Добрый день уважаемые участники форума, я не так давно начал осваивать Python и, соответственно, Selenium webdriver(Mozilla firefox). Появилась проблема, связанная, с работой popup windows, появляющихся при работе с браузером. Простой пример - я пишу авто скрипт, который через Yandex почту или Gmail должен отправить письмо адресату с прикрепленным файлом. Вот тут то и возникает проблема, как в этом открывшемся окне для приаттачивания файла выбрать тот самый файл и кликнуть на кнопку “Open”.
Видел подобное решение проблемы, но на Java, а нужно именно на Python.
Заранее спасибо всем кто откликнулся.
С самим попапом тебе вряд ли удастся взаимодействовать через вебдрайвер, но ты можешь указать путь к файлу для твоего input field :
String script = "document.getElementById('fileName').value='" + "C:\\\\temp\\\\file.txt" + "';";
((IJavascriptExecutor)driver).executeScript(script);
Нобходимо именно с помощью вебдрайвера это делать?
Лучше обойтись без вебдрайвера и воспользоваться этим
https://docs.python.org/2/library/email-examples.html
В принципе нет строгой необходимости. По Вашей ссылке уже ранее лазил - т.е. знаю этот вариант(Но все равно спасибо!!!). Но хотелось бы узнать, возможно ли с помощью каких то способов сделать именно так.
Именно так - скорее никак, это попап, с которым (если я ошибаюсь - поправьте) вебрайвер взаимодействовать не умеет. Упростите себе жизнь, и пользуйтесь более простым способом.
Тогда спасибо, что избавили меня от мытарств с этим делом)) Буду этот момент на будущее учитывать!
Попробуй какойнибудь AutoIt или Sikuli, но лучше всего как в первом ответе - т.е. без окон)
У вебдрайвера есть замечательная вещь как Sendkeys(абсолютный путь к файлу), которю нужно применить к инпуту. Это позволит обойти окно загрузки предоставленное браузером.
В случае если все-же необходимо взаимодействовать с этим окошком - можно на автоите черкануть в 2 строчки скрипт.