2013-04-10 33 views
0

在我的申请中,如果我必须选择一个大学的名字,我只需要输入前三个字母(不会少于这个字母),它会生成一个大学列表。现在问题有时需要很长时间才能生成列表,有时它根本不会生成列表,并且测试失败并出现TimeOutException错误。为了解决这个问题,我把它放在try-catch块中,在catch中我清理并重新输入这个letter在这个univ框中。但是,这会使代码变得非常丑陋/笨重,并且不能确保将内部抓到不会失败。 所以我想循环它直到成功,它会继续清理并输入大学信件,直到它填充列表。为什么我想这样做,因为它实时工作,手动(没有WebDriver /自动化)?这是正确的方法,如果否,那么如何解决这个问题。如果是的话,如何使它成为可能? 我认为它可以工作是这样的:如何处理自填充列表的超时异常?

#1 while (particular univ name is not visible) 
#2 .clear 
#3 .sendkeys first 3 letters 
#4 wait till elelment is visble >> select >> pass 
#5 if not visible >> repeat 2 & 3 

我用java写我的ubuntu上的脚本。

回答

0

建议需要等待一段时间。分开您的.sendkeys与之间的睡眠。所以这个列表可以被正确地累积。 .sendkeys 睡眠 的SendKeys 睡眠 的SendKeys

+0

这是没有什么不同,但把这么多try-catch块,我想迭代它,直到我成功。 – user2172723 2013-04-10 16:57:13

+0

万一你想做循环,只需设置try catch直到“condition”.isVisible == true。对于睡眠方法,你可以尝试用一种方法(无效)捕捉它,并尽可能多地使用它... – buddy 2013-04-11 07:17:02

+0

谢谢大家。我认为这种方法是不正确的,在这里讨论我会得到更好的想法。但我重复,直到成功。 – user2172723 2013-04-11 07:38:10

1

我不认为这是一个正确的做法。这是你的应用程序中的一个错误。

如果输入的数据不正确,并且没有匹配的列表,那么是唯一一种您应该预期结果不应返回的情况。在这种情况下,您的验证是:不会返回结果,您可以自动执行结果。

如果您有有效的数据并且结果没有被返回,那么我会将其作为应用程序错误并与开发人员交谈。在这种情况下,你不应该理想地尝试处理代码,因为它隐藏了一个bug。

+0

嗯..,你是对的,但我不能报告它,因为它是不可复制的,它发生在间歇性的基础上。有时候没有清单,有时它会很快。所以如果我想迭代它,直到我取得成功,我该怎么做(但与dev的讨论是确定的事情) – user2172723 2013-04-10 16:56:25