为什么我的Selenium命令不起作用?

时间:2011-04-12 14:03:56

标签: jquery selenium

我正在编写一个只在所有ajax调用完成后才开始测试的selenium脚本。

有几个论坛建议我使用以下条件(在waitForCondition命令中):

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

不幸的是,这会引发错误:

  

jQuery未定义

JQuery肯定是在我的网站上定义的。我也尝试用$替换jQuery,但得到同样的错误。

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

您可能需要等待jQuery完成加载,尝试等待

typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'
在检查活动之前,

是真的。

答案 1 :(得分:2)

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

这里的关键区别是功能,您需要getUserWindow(),而不是getCurrentWindow()

答案 2 :(得分:1)

我只能让它在Selenium IDE中运行。

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

答案 3 :(得分:0)

如果这是在Firefox中,它可以包装在XPCNativeWrapper中。为了解决这个问题,获取窗口的“最佳实践”方法是调用getUserWindow()来处理解包对象以使其可用。

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

答案 4 :(得分:0)

我能让这个工作的唯一方法是在C#测试中做同样的事情,而不是Selenium HTML模式。在通过RC Server进行的C#测试中,它可以正常工作。