Python 使用pywinauto进行Tkinter测试
我正在尝试使用PyWinAuto进行一些Tkinter GUI测试。我有一个用Tk编写的简单应用程序, 问题是-我无法让PyWinAuto在我的应用程序中识别和使用按钮/条目。 我试过了Python 使用pywinauto进行Tkinter测试,python,tkinter,gui-testing,pywinauto,Python,Tkinter,Gui Testing,Pywinauto,我正在尝试使用PyWinAuto进行一些Tkinter GUI测试。我有一个用Tk编写的简单应用程序, 问题是-我无法让PyWinAuto在我的应用程序中识别和使用按钮/条目。 我试过了 >app.Prototype.PrintControlIdentifiers() 但它什么也不返回,或者: >>> app.Prototype.print_control_identifiers() Control Identifiers: TkChild - '' (L308, T81,
>app.Prototype.PrintControlIdentifiers()
但它什么也不返回,或者:
>>> app.Prototype.print_control_identifiers()
Control Identifiers:
TkChild - '' (L308, T81, R1108, B681)
'' '0' '1' 'TkChild' 'TkChild0' 'TkChild1'
Button - '' (L763, T86, R878, B112)
'2' 'Button' 'Button0' 'Button1'
Button - '' (L613, T86, R728, B112)
'3' 'Button2'
Button - '' (L463, T86, R578, B112)
'4' 'Button3'
Button - '' (L313, T86, R428, B112)
'5' 'Button4'
TkChild - '' (L613, T171, R737, B198)
'6' 'TkChild2'
TkChild - '' (L463, T171, R587, B198)
'7' 'TkChild3'
TkChild - '' (L313, T171, R437, B198)
'8' 'TkChild4'
Static - '' (L613, T141, R949, B170)
'9' 'Static' 'Static0' 'Static1'
Static - '' (L463, T141, R799, B170)
'10' 'Static2'
Static - '' (L313, T141, R649, B170)
'11' 'Static3'
应用程序窗口名为Prototype(Tkinter title Prototype GUI)。我还尝试在小部件中设置\u name
和name
,如下所示:
param_range = Entry(wrapper, self.basicEntrySett, name="entryrange")
或:
但它所做的只是:
print param_range.winfo_name()
entryrange
并且PrintControlIdentifiers输出没有更改。我想用人类可读的方式来命名它们。不确定它在这种情况下是否对您有帮助,但请仔细研究。对我来说,PyWinAuto带来了很多困惑和挫折。我对Tkinter了解不多。我看到您已经设置了控件的name属性。是否可以改为设置文本属性?如果没有,则可以执行类似于param_range=app.Prototype.Button0的操作,然后单击param_range.click()。这只是一个使用有意义名称的例子。@Jkdc好吧,它更容易处理,但小部件的ID有时会改变。。。我不知道为什么会这样。@LittlePanda:我试试这个,谢谢。
print param_range.winfo_name()
entryrange