Python : NameError: 未定义全局名称'GetText'



我已经被这个错误困扰了几个小时了。不知道哪里出了问题。下面是代码

NameError:全局名称'GetText'未定义

class BaseScreen(object):
    def GetTextFromScreen(self, x, y, a, b, noofrows = 0):
        count = 0
        message = ""        
        while (count < noofrows):
            line = Region(self.screen.x + x, self.screen.y + y + (count * 20), a, b)
            message = message + "n" + line.text()
            count += 1            
        return message
class HomeScreen(BaseScreen):
    def GetSearchResults(self):
        if self.screen.exists("Noitemsfound.png"):
            return 'No Items Found'
        else:
            return self.GetTextFromScreen(36, 274, 680, 20, 16)
class HomeTests(unittest.TestCase):
    def test_001S(self):
        Home = HomeScreen()
        Home.ResetSearchCriteria()
        Home.Search("0009", "Key")
        self.assertTrue("0009" in Home.GetSearchResults(), "Key was not returned")

Basescreen类具有适用于不同屏幕的所有可重用方法。
Homescreen继承Basescreen
HomeTests测试用例类中,最后一步是到Home.GetSearchResults(), CC_5依次调用基类方法和错误。

注意:
我有另一个screenclass和testcasecclass做同样的工作没有问题。

我已经检查了所有的导入语句,没有问题

错误消息中的'GetText'最初是方法的名称,之后我将其更改为GetTextFromScreen

错误信息仍然指向代码中的第88行,而该行已不再存在。模块导入/重新加载问题?

尝试清空*。

你问:

错误信息仍然指向代码中的第88行,而该行已不再存在。模块导入/重新加载问题?

是的。回溯(错误消息)将显示当前(最新保存的)文件,即使您还没有运行它。您必须重新加载/重新导入才能获得新文件。

差异来自于回溯打印输出是从保存在驱动器上的脚本文件(scriptname.py)读取的事实。但是,程序要么从保存在内存中的模块运行,要么有时从.pyc文件运行。如果您通过更改脚本来修复错误,并将其保存到驱动器,那么如果您不重新加载它,仍然会出现相同的错误。

如果您正在交互式运行测试,您可以使用reload函数:

>>> import mymodule
>>> mymodule.somefunction()
Traceback (most recent call last):
  File "mymodule.py", line 3, in somefunction
    Here is a broken line
OhNoError: Problem with your file

现在,您修复了错误并保存mymodule.py,返回到您的交互式会话,但是您仍然得到错误,但是回溯显示了固定行

>>> mymodule.somefunction()
Traceback (most recent call last):
  File "mymodule.py", line 3, in somefunction
    Here is the fixed line
OhNoError: Problem with your file

所以你必须重新加载模块:

>>> reload(mymodule)
<module 'mymodule' from '/path/to/mymodule.py'>
>>> mymodule.somefunction()
Success!

最新更新