我有一个网页,在页面加载后立即选择一个定制的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选择器。
谢谢!
答案 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选择器也是如此