LINUX.ORG.RU

История изменений

Исправление vvn_black, (текущая версия) :

А чего код не покажешь?

Коды клавиш зависят от терминала, вот, рабочий пример для xterm:

import os
import pexpect
import time

KEYS = {
    'DOWN': '\033[B',
    'RIGHT': '\033[C',
    'ENTER': '\r'
}

...

os.environ['TERM'] = 'xterm'
os.environ['LINES'] = '25'
os.environ['COLUMNS'] = '80'

term = pexpect.spawn('telnet {hostname}'.format(hostname=hostname))
term.expect('login: ')
term.sendline(login)
term.expect('password:')
term.sendline(password)
term.expect(matching_string)

term.send(KEYS['DOWN])
time.sleep(1)
term.send(KEYS['RIGHT])
time.sleep(1)
term.send(KEYS['RIGHT])
time.sleep(1)
term.send(KEYS['DOWN])
time.sleep(1)
term.send(KEYS['ENTER])
time.sleep(1)

...

Код коннектится к серверу hostname, ожидает увидеть на экране совпадение с matching_string и эмулирует проход по менюшкам - вниз, вправо, вправо, вниз и ентер.

Исходная версия vvn_black, :

А чего код не покажешь?

Коды клавиш зависят от терминала, вот, рабочий пример для xterm:

import os
import pexpect
import time

KEYS = {
    'DOWN': '\033[B',
    'RIGHT': '\033[C',
    'ENTER': '\r'
}

...

os.environ['TERM'] = 'xterm'
os.environ['LINES'] = '25'
os.environ['COLUMNS'] = '80'

term = pexpect.spawn('telnet {hostname}'.format(hostname=hostname)
term.expect('login: ')
term.sendline(login)
term.expect('password:')
term.sendline(password)
term.expect(matching_string)

term.send(KEYS['DOWN])
time.sleep(1)
term.send(KEYS['RIGHT])
time.sleep(1)
term.send(KEYS['RIGHT])
time.sleep(1)
term.send(KEYS['DOWN])
time.sleep(1)
term.send(KEYS['ENTER])
time.sleep(1)

...

Код коннектится к серверу hostname, ожидает увидеть на экране совпадение с matching_string и эмулирует проход по менюшкам - вниз, вправо, вправо, вниз и ентер.