使用JQuery选择器和Selenium IDE 2.0.0获取元素属性

时间:2013-06-05 14:08:45

标签: jquery selenium properties ide selector

我有一个网页,在页面加载后立即选择一个定制的Raphael单选按钮。我正在尝试验证是否使用Selenium IDE 2.0.0和FireFox 20.0.1选择了适当的ID。

我尝试了以下内容......

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('.response-options.selected').prop('id')} | |

...但结果我只是得到了null。作为测试,我试过......

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('#item-responses-A1_1a_No').prop('id')} | |

......但即使我可以跑......我仍然会失效。

|assertElementPresent | #item-responses-A1_1a_No | |

......然后通过。有趣的是,如果我跑...

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('.response-options.selected')} | |

...(没有.prop('id')),我得到一个“对象对象”。

有谁知道如何使用JQuery选择器获取元素属性?我已经看到发布的涉及user-extensions.js帮助函数的解决方案,但似乎这只是一个便利函数,它允许您使用较少的文本来使用JQuery选择器。

谢谢!

2 个答案:

答案 0 :(得分:3)

assertEval就是你要找的东西。首先,您必须先使用存储命令存储对jquery的引用。

以下是一个例子:

<tr>
    <td>store</td>
    <td>this.browserbot.getUserWindow().jQuery</td>
    <td>jq</td>
</tr>
<tr>
    <td>assertEval</td>
    <td>${jq}('.response-options.selected').prop('id')</td>
    <td>**the name of the ID you want to match against**</td>
</tr>

答案 1 :(得分:0)

为了以防万一,我只想运行javascript(包括页面中的jquery语句),就可以接受答案(对您Scottingham成千上万的荣誉!)。您只需要使用getUserWindow中的jQuery重新定义$符号!

然后添加一个runScript命令,并在目标中添加以下内容:

javascript{var $=this.browserbot.getUserWindow().jQuery; ... your javascript there}

例如

javascript{var $=this.browserbot.getUserWindow().jQuery; $('#myid').click();}

并且请记住,硒只能看到页面上可见的内容……在这种情况下,您的jquery选择器也是如此