Jan-06-2022, 04:42 AM
Hi,
I am new to python i am trying some automation where in i want to call a terminal application from python and control the same.
I have tried Pexpect where i am able to open the application, but not able to read the contents from the terminal.
pasted below is my code:
Note: When i am tying to run the application manually, everything works fine.
Looking forward for some guidance from experts.
Regards
Johnson
I am new to python i am trying some automation where in i want to call a terminal application from python and control the same.
I have tried Pexpect where i am able to open the application, but not able to read the contents from the terminal.
pasted below is my code:
import pexpect child = pexpect.spawn ('./test_app -g',timeout=3,encoding='utf-8') #i am expecting the below string return_val=child.expect(['Enable QSE API? (Y/n)']) #if i receive the same string then i want to pass y to the terminal child.sendline('y') #now i am expecting the below string child.expect('Enable log? (Y/n)') child.sendline("y")When i execute the above script always timeout occurs and gets the below erorr/log message:
Error:user@user-laptop:~/Automation$ python3 script_v1.py
Traceback (most recent call last):
File "script_v1.py", line 5, in <module>
return_val=child.expect(['Enable QSE API? (Y/n)'])
File "/usr/local/lib/python3.6/site-packages/pexpect/spawnbase.py", line 344, in expect
timeout, searchwindowsize, async_)
File "/usr/local/lib/python3.6/site-packages/pexpect/spawnbase.py", line 372, in expect_list
return exp.expect_loop(timeout)
File "/usr/local/lib/python3.6/site-packages/pexpect/expect.py", line 181, in expect_loop
return self.timeout(e)
File "/usr/local/lib/python3.6/site-packages/pexpect/expect.py", line 144, in timeout
raise exc
pexpect.exceptions.TIMEOUT: Timeout exceeded.
<pexpect.pty_spawn.spawn object at 0x7fae358ece10>
command: ./test_app
args: [b'./test_app', b'-g']
buffer (last 100 chars): '\x1b[2J\x1b[1dEnable QSE API? (Y/n) '
before (last 100 chars): '\x1b[2J\x1b[1dEnable QSE API? (Y/n) '
after: <class 'pexpect.exceptions.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 7737
child_fd: 5
closed: False
timeout: 3
delimiter: <class 'pexpect.exceptions.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
searcher: searcher_re:
0: re.compile('Enable QSE API? (Y/n)')
user@user-laptop:~/Automation$
Something about the application: It runs on Ubuntu 18.x.x. terminal, once its started it will publish a menu and the user have to input the menu options.Note: When i am tying to run the application manually, everything works fine.
Looking forward for some guidance from experts.
Regards
Johnson