Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pywinauto进行Tkinter测试_Python_Tkinter_Gui Testing_Pywinauto - Fatal编程技术网

Python 使用pywinauto进行Tkinter测试

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,

我正在尝试使用PyWinAuto进行一些Tkinter GUI测试。我有一个用Tk编写的简单应用程序, 问题是-我无法让PyWinAuto在我的应用程序中识别和使用按钮/条目。 我试过了
>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