我正在写一个硒脚本,应该只在所有ajax调用完成后才开始测试。为什么我的Selenium命令不起作用?
几个论坛都建议我用下列条件(在waitForCondition命令):
selenium.browserbot.getCurrentWindow().jQuery.active == 0
不幸的是这不断抛出一个错误:
jQuery is undefined
jQuery是我的网站上明确限定。我也尝试用$替换jQuery,但得到相同的错误。
任何想法?
我正在写一个硒脚本,应该只在所有ajax调用完成后才开始测试。为什么我的Selenium命令不起作用?
几个论坛都建议我用下列条件(在waitForCondition命令):
selenium.browserbot.getCurrentWindow().jQuery.active == 0
不幸的是这不断抛出一个错误:
jQuery is undefined
jQuery是我的网站上明确限定。我也尝试用$替换jQuery,但得到相同的错误。
任何想法?
我能得到这个工作的唯一方法是在C#测试中执行相同的操作,而不是使用Selenium HTML模式。在通过RC服务器的C#测试中,它工作正常。
您可能需要等待jQuery来加载完成,尽量等到
typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'
是真实的,检查起作用。
如果这是在Firefox中,它可以包装在XPCNativeWrapper中。为了解决这个问题,最好的方法就是调用getUserWindow()来处理展开对象,使其变得可用。
这也假定jQuery不是异步加载的。
您应该使用selenium.browserbot.getUserWindow().$.active == 0
这里的关键区别在于功能,你需要getUserWindow()
,不getCurrentWindow()
我只是能够使它硒IDE内工作。
Command: waitForCondition
Taret: selenium.browserbot.getUserWindow().$.active == 0
Value: 30000
不错的提示。我不知道这是否能解决问题,因为我通过切换到c#硒测试(工作)来解决问题。 – willem 2011-05-09 05:25:59