我正在尝试使用Marathon进行一些数据驱动测试,而我正在屏幕上输入一些数据。我遇到的问题是我试图填写的JComboBox之一并不总是被启用(即有时它会变为默认值)。如果未启用JComboBox,我需要能够跳过该步骤。
if object enabled:
select('object', 50) #otherwise skip and move on
我试过使用assertEnabled调用,但我无法确切知道返回的是什么。我已将assertEnabled嵌入到if语句中,并且我没有得到任何语法错误,但每当我执行测试时,它都会挂起if语句并且什么都不做。我希望它会抛出一个错误,以便我可以使用try catch,但事实并非如此。有关如何在未启用某个对象的情况下让它通过该步骤的任何建议?此外,我宁愿不使用计时器并让它查找一段时间,因为我们在回归中运行了数千个测试用例,这将使脚本花费数天甚至数周即可完成。
答案 0 :(得分:1)
Marathon有一个get_component
函数,可以为您提供实际的Java组件(请参阅文档中的“脚本界面”部分)。此函数将暂停一段时间,如果找不到该对象则会失败。
但假设对象存在,您可以使用get_component
找到它,然后通过在其上调用java.awt.Component
的{{3}}来获取其状态。
答案 1 :(得分:0)
有一个名为get_p
的方法,它从Java对象返回一个属性值。您可以查看get_p('object', 'enabled')
,其中返回'true'或'false'。请注意,返回值是字符串而不是布尔对象。