我正在尝试测试happy-path的一段代码,该代码需要很长的响应时间,然后开始将文件写入响应输出流,这会在浏览器中提示下载对话框。
问题是该过程过去失败了,经过这么长时间的工作后引发了异常。 Selenium 中是否有一种方法可以转换为wait-for-download
或等效方法?
我可以输入Thread.sleep
,但这将是不准确的,并且不必要地减慢了测试运行的速度。
我该怎么办?
最佳答案
因此,这里有两个问题:
Selenium不能直接解决这两个问题(但是-2.0可能会有所帮助),但是两者都是可以解决的问题。第一个问题可以通过GUI自动化工具包(例如AutoIT)解决。但是,也可以通过在操作系统级别简单地发送一个模拟Enter键的自动按键来解决这些问题(适用于Firefox,在某些版本的Chrome和Safari上更难一些)。如果您使用的是Java,则可以使用Robot来做到这一点。其他语言也具有类似的工具包来执行此操作。
第二个问题可能是使用某种代理解决方案最好地解决了。例如,如果将浏览器配置为通过代理,并且该代理具有API,则可以使用该API查询代理,以询问网络事件何时结束。
这就是我们在http://browsermob.com上所做的工作,这是我创建的一家使用Selenium进行负载测试的创业公司。我们已经发布了一些代理代码作为开源代码,可从http://browsermob.com/tools获得。
但是仍然存在两个问题:
希望能帮助您确定各种选择。祝你好运!
关于unit-testing - Selenium 等待下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917533/