Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Webdriver + Python + Java (запуск внешнего bat файла из python)


(Jeyson X) #1

Всем привет.

Есть WebDriver+Python 2.7.5
Для решения проблемы авторизации через NTLM была выклянчена у программеров программка, которая сама вводит логин и пароль в появившемся окне.
Осталась только проблема с тем, чтобы прикрутить эту программку к python.

Не подскажите как сделать, чтобы из кода можно было вызвать на выполнение эту программу? (тут в папке есть сам jar файл и bat файл, но вызывать я так понял надо bat файл потому, что в нем находится строка вызова jat файла
“java -jar LoginUtil.jar %URL% %PASSWORD%”)

Сам я в программировании вообще новичок и начал только только изучать Python, а точнее осваивать автоматизацию тестирования средствами WebDriver+Python.
По данному вопросу на этому форуме не нашел конкретного ответа, да и в инете тоже.
Видать неверно искал.


(Artur Korobeynyk) #2
from subprocess import Popen, PIPE
result = Popen(['java',
                 '-jar LoginUtil.jar',
                 url,
                 password],
                stdout=PIPE).stdout.read().strip().splitlines()
<Реагируй на вывод соответственно>

(rmerkushin) #3

Не пробовали использовать cntlm ?


(Jeyson X) #4

мне кажется, что то похожее как раз сделано на java
вот исходник bat-файла

set URL=http://test/gui/
set LOGIN=testlogin
set PASSWORD=testpass

java -jar LoginUtil.jar %URL% %LOGIN% %PASSWORD%

pause

(Jeyson X) #5

такая ошибка вылезла

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecognized option: -jar LoginUtil.jar

(rmerkushin) #6

Зачем вы его в тесте хотите запускать? Поставьте cntlm (лучше всего на linux хост), настройте его один раз и не парьтесь :smile: К тому же это может помочь и другим людям, cntlm можно использовать толпой :wink:


(Jeyson X) #7

легко сказать )) я на тестовой среде ничего не могу устанавливать …
админов просить - глухо, один ответ “все, что необходимо уже установлено”
вот и приходиться выкручиваться


(Artur Korobeynyk) #8
from subprocess import Popen, PIPE
result = Popen(["login.bat"],stdout=PIPE)

так можно просто батник запускать вашб есди юзер и пароль находятся в переменных окружения (что должно заставить задуматься вашего админа)

Ну а также можно попробовать воспоользоваться советом о том как устранить ошибку с джавой


(Jeyson X) #9

вот это помогло ))
спасибо )