【问题标题】:Using Selenium to Test jQuery element data()?使用 Selenium 测试 jQuery 元素数据()?
【发布时间】:2010-11-19 07:33:15
【问题描述】:

是否可以使用 selenium 来测试是否在元素上设置了 jQuery data()?

在我的应用中,用户输入了有关多个订单的信息。每个订单都会附加到概览表中,这样他们就可以看到他们的进度。除了可见的订单信息之外,我们还使用存储在 jquery.data() 中的数组存储了一些关于每个订单所需的额外信息,如下所示:

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

我想编写一个 selenium 测试来断言当用户按下“添加订单”时,我的附加数据会添加到 $('#table').data('orders')。

我想我需要类似的东西:

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

但我认为我遇到的问题是 Selenium IDE 不知道 jQuery 命名空间和函数,因此它不知道如何查找表。但是即使我使用了 getElementbyID('table'),我如何让 selenium 了解 data()?

【问题讨论】:

  • 当然,另一种方法是在表格的每一行中的隐藏字段中添加我们的额外信息,这样 selenium 可以轻松找到它。但是,这不是我们所拥有的。该死的继承代码=)

标签: javascript jquery unit-testing selenium


【解决方案1】:

您确定 Selenium IDE 的 $ 有问题吗?我能够从 Selenium IDE 访问它。也许您的 jQuery 表达式中还有其他问题?你可以先试试“assertEval $ 0”等,看看IDE是否可以单独评估$

【讨论】:

  • 你是对的...我能够 assertEval $,它还给了我 jQuery 对象的文本,所以它绝对可以“看到”jQuery...但这让我更加好奇发生了什么。为什么 selenium 不能评估那个表达式?
【解决方案2】:

我发现 selenium 只会看到 jquery 函数,如果你访问它:

window.$(...)

不像

$(...)

也许这是(部分)问题?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-05
    • 2011-12-20
    • 2021-09-11
    • 2019-12-13
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多