t.me/atinfo_chat Telegram группа по автоматизации тестирования

Каким образом работать с popup на Python selenium WD

Теги: #<Tag:0x00007f9b02c527f0> #<Tag:0x00007f9b02c525e8>

Добрый день уважаемые участники форума, я не так давно начал осваивать 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);
1 Симпатия

Нобходимо именно с помощью вебдрайвера это делать?
Лучше обойтись без вебдрайвера и воспользоваться этим
https://docs.python.org/2/library/email-examples.html

В принципе нет строгой необходимости. По Вашей ссылке уже ранее лазил - т.е. знаю этот вариант(Но все равно спасибо!!!). Но хотелось бы узнать, возможно ли с помощью каких то способов сделать именно так.

Именно так - скорее никак, это попап, с которым (если я ошибаюсь - поправьте) вебрайвер взаимодействовать не умеет. Упростите себе жизнь, и пользуйтесь более простым способом.

Тогда спасибо, что избавили меня от мытарств с этим делом)) Буду этот момент на будущее учитывать!

Сделайте через Winium он отлично совместим с selenium :wink:

Попробуй какойнибудь AutoIt или Sikuli, но лучше всего как в первом ответе - т.е. без окон)

У вебдрайвера есть замечательная вещь как Sendkeys(абсолютный путь к файлу), которю нужно применить к инпуту. Это позволит обойти окно загрузки предоставленное браузером.

В случае если все-же необходимо взаимодействовать с этим окошком - можно на автоите черкануть в 2 строчки скрипт.