Exemplo n.º 1
0
 my3270.wait_for_field()
 time.sleep(delayt)
 # DSNAME - HERC03/4
 my3270.send_string(mylogin)
 my3270.send_enter()
 my3270.wait_for_field()
 time.sleep(delayt)
 # Capture the data set list
 i = 3
 while i < 24:
     if my3270.string_found(i, 4, '**END**'):
         break
     screenrows.append(my3270.string_get(i, 4, 76))
     i += 1
 #
 my3270.send_pf3()
 my3270.wait_for_field()
 time.sleep(delayt)
 #
 my3270.send_pf3()
 my3270.wait_for_field()
 time.sleep(delayt)
 # 2 - Create Data Set
 my3270.send_string("2")
 my3270.send_enter()
 my3270.wait_for_field()
 time.sleep(delayt)
 # A - Allocate New Data Set
 my3270.send_string("A")
 my3270.exec_command(b"TAB")
 my3270.exec_command(b"TAB")
Exemplo n.º 2
0
class Automation3270(object):
    '''Library for x3270 emulator automation. More information at http://x3270.bgp.nu/'''
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

    def Open_3270(self, hostname):
        '''Opens emulator. Provide the hostname as argument'''
        self.em = Emulator(visible=True)
        self.em.connect(str(hostname))

    def Open_New_3270(self):
        '''Closes all previous instances before starting'''
        self.process_name = 'wc3270.exe'
        self.get_pid = [
            self.item.split()[1]
            for self.item in os.popen('tasklist').read().splitlines()[4:]
            if self.process_name in self.item.split()
        ]
        if self.get_pid[0] == "":
            self.em = Emulator(visible=True)
            self.em.connect('prda.bcpcorp.net')
        else:
            print 'Program already open'

    def Close_3270(self):
        '''Closes emulator'''
        self.pid_proc = 'wc3270.exe'
        self.pid = [
            self.item.split()[1]
            for self.item in os.popen('tasklist').read().splitlines()[4:]
            if self.pid_proc in self.item.split()
        ]
        print "PID number is " + self.pid[0]
        os.kill(int(self.pid[0]), signal.SIGTERM)

    def Input_Text_on_Field(self, xpos, ypos, text):
        '''Writes text on field. Last parameters requires the lenght of the word'''
        self.em.fill_field(int(xpos), int(ypos), str(text), len(text) + 2)

    def Send_String(self, text, xpos, ypos):
        '''Verifies if a given string exists'''
        self.em.string_found(text, int(xpos), int(ypos))

    def Keyboard_State(self):
        '''If the keyboard is unlocked, the letter U. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter L'''
        print self.em.status.keyboard.capitalize()

    def wait_For_Field(self):
        '''Waits for execution'''
        self.em.wait_for_field()

    def Execute_Command(self, command):
        '''Executes custom commands. See more a thttp://x3270.bgp.nu/x3270-script.html'''
        self.em.exec_command(self, command)

    def Connection_State(self):
        '''If connected to a host, the string C(hostname). Otherwise, the letter N'''
        print self.em.status.connection_state.capitalize()

    def Get_String(self, xpos, ypos, lenght):
        '''Get String based on coordinates and lenght'''
        get_text = self.em.string_get(int(xpos), int(ypos), int(lenght))
        return get_text

    def Press_Enter(self):
        '''Presses Enter key'''
        self.em.send_enter()

    def Move_cursor(self, xpos, ypos):
        '''Moves cursor to specified coordinates'''
        self.em.move_to(xpos, ypos)

    def Take_Screenshot(self):
        '''Takes printscreen'''
        self.em.save_screen()

    def Pause_Test(self):
        '''Pauses Test at a given moment'''
        self.em.app.readline()

    def Send_F3(self):
        '''Simulates F3 key'''
        self.em.send_pf3()

    def Send_F4(self):
        '''Simulates F4 key'''
        self.em.send_pf4()

    def Send_F5(self):
        '''Simulates F5 key'''
        self.em.send_pf5()

    def Send_F6(self):
        '''Simulates F6 key'''
        self.em.send_pf6()

    def Send_F7(self):
        '''Simulates F7 key'''
        self.em.send_pf7()

    def Send_F8(self):
        '''Simulates F8 key'''
        self.em.send_pf8()