2011-04-12 70 views
3

我正在写一个硒脚本,应该只在所有ajax调用完成后才开始测试。为什么我的Selenium命令不起作用?

几个论坛都建议我用下列条件(在waitForCondition命令):

selenium.browserbot.getCurrentWindow().jQuery.active == 0 

不幸的是这不断抛出一个错误:

jQuery is undefined

jQuery是我的网站上明确限定。我也尝试用$替换jQuery,但得到相同的错误。

任何想法?

回答

0

我能得到这个工作的唯一方法是在C#测试中执行相同的操作,而不是使用Selenium HTML模式。在通过RC服务器的C#测试中,它工作正常。

4

您可能需要等待jQuery来加载完成,尽量等到

typeof selenium.browserbot.getCurrentWindow().jQuery == 'function' 

是真实的,检查起作用。

+0

不错的提示。我不知道这是否能解决问题,因为我通过切换到c#硒测试(工作)来解决问题。 – willem 2011-05-09 05:25:59

0

如果这是在Firefox中,它可以包装在XPCNativeWrapper中。为了解决这个问题,最好的方法就是调用getUserWindow()来处理展开对象,使其变得可用。

这也假定jQuery不是异步加载的。

2

您应该使用selenium.browserbot.getUserWindow().$.active == 0

这里的关键区别在于功能,你需要getUserWindow(),不getCurrentWindow()

1

我只是能够使它硒IDE内工作。

Command: waitForCondition 
Taret: selenium.browserbot.getUserWindow().$.active == 0 
Value: 30000 
相关问题