2009-08-13 77 views
4

是否有可能使用硒来测试是否在元素上设置了jQuery数据()?使用Selenium测试jQuery元素数据()?

在我的应用程序中,用户输入关于多个订单的信息。每个订单都会附加到概览表中,以便他们可以看到他们的进展情况。除了可见的订单信息,我们店,我们需要了解如何使用存储在jquery.data(数组每个订单)一些额外的信息,像这样:

$('#table').data('orders').push(neworderdata) 

我想写硒测试断言当用户按下“添加订单”时,我的附加数据被添加到$('#table')。data('orders')。

我想,我需要这样的东西:

Command: assertEval 
Target: $('#table').data('order')[1].cust_no 
Value: 99999 

但我想我遇到的问题是,硒IDE不知道jQuery的命名空间,功能,因此它不知道如何找到表格。但即使我使用getElementbyID('table'),我如何让硒知道数据()?

+0

当然,另一种方法是在硒表可以很容易找到的每一行的隐藏字段中添加额外的信息。但是,那不是我们所拥有的。该死的继承代码=) – fitzgeraldsteele 2009-08-13 13:49:49

回答

1

你确定Selenium IDE在$有问题吗?我能够从Selenium IDE访问它。 jQuery表达式可能还有其他的东西被破坏了吗?您可以先尝试“assertEval $ 0”等来查看IDE是否可以单独评估$

+0

你是对的...我能够assertEval $,它让我回到了jQuery对象的文本,所以它绝对可以'看到'jQuery ... 但是,这使得我对发生的事情充满好奇。为什么硒不能评估这种表达? – fitzgeraldsteele 2009-08-18 21:18:37

1

我发现,硒只能看到jQuery的功能,如果你访问它:

window.$(...) 

不是

$(...) 

也许这就是问题所在(的一部分)?