我已经被这个错误困扰了几个小时了。不知道怎么了。下面是一段代码
NameError: global name 'GetText' is not defined
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()
,后者反过来调用基类方法和错误。在
注意:
我有另一个screenclass和testcaseclass做同样的工作,没有问题。在
我已经检查了所有的进口对账单,一切正常
错误消息中的“GetText”是最初将其更改为GetTextFromScreen
的方法的名称
错误消息仍然指向代码中已不存在的第88行。模块导入/重新加载问题?在
尝试清除*.pyc文件(如果使用3+,则清除
__pycache__
)。在你问:
是的。回溯(错误消息)将显示当前(最新保存的)文件,即使您尚未运行它。必须重新加载/重新导入才能获取新文件。在
这种差异来自于从脚本文件读取回溯打印输出的事实(脚本名.py)保存在驱动器上。但是,程序可以从保存在内存中的模块运行,有时也可以从.pyc文件运行。如果通过更改脚本来修复错误,并将其保存到驱动器中,则如果不重新加载,则仍会发生相同的错误。在
如果您正在以交互方式运行以进行测试,则可以使用
reload
函数:现在,修复错误并保存我的模块.py,返回到交互式会话,但仍会得到错误,但回溯显示固定行
^{pr2}$所以你必须重新加载模块:
相关问题 更多 >
编程相关推荐