我正在使用Python尝试自动化Attachmate - EXTRA!
我使用这里找到的pywin32包。我在这里使用OLE如何与Attachmate一起工作的文档(其中可以找到GetString和PutString方法)。
我的代码:system = win32com.client.Dispatch("EXTRA.System")
sess0 = system.ActiveSession
product = sess0.screen.GetString(0, 1, 2)
产生错误:
line13: product = sess0.screen.GetString(1, 1, 2)
TypeError: 'str' object is not callable
方法GetString,据说有语法:rc = object.GetString (Row, Col, Length, [Page])
,但是我在Python中使用这种语法的尝试产生了上面的错误。
我研究了这个错误,发现它相当于尝试做:"mystring"()。这不应该,因为当我检查我的sess0的类型时,它确实是a: <class 'win32com.client.CDispatch'>
。
我知道这个问题可能源于语法不同于附件/OLE页面上解释的内容。然而,PutString方法被解释为具有以下语法:object.PutString String [,Row][,Col][,Page]
,但我使用:sess0.screen.PutString("90", 1, 79)
使其工作良好。该代码正确地将字符串"90"放在我的Attachmate会话中的位置1,79。
我很好奇这是否可能是包本身的问题。如果有人有尝试用Python自动化Attachmate的经验,他们的帮助将非常感谢!
我使用这些函数来读取和写入Attachmate EXTRA!屏幕
尝试以下操作:
import win32com.client
def write(screen,row,col,text):
screen.row = row
screen.col = col
screen.SendKeys(text)
def read(screen,row,col,length,page=None):
if page is None:
return screen.Area(row, col, row, col+length).value
else:
return screen.Area(row, col, row, col+length, page).value
def test():
system = win32com.client.Dispatch("EXTRA.System")
sess0 = system.ActiveSession
screen = sess0.Screen
product = read(screen, 1, 1, 2)
print(product)
write(screen, 1, 79, "90")
文档:
Screen.Area (StartRow、StartCol EndRow, EndCol[、页面][,])
SendKeys(字符串)