1

我有一个网页加载后立即选择定制的 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 选择器。

谢谢!

4

2 回答 2

3

assertEval 是您正在寻找的。首先,您必须使用之前的 store 命令存储对 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>
于 2013-06-06T16:15:14.340 回答
0

以防万一它对其他人有帮助,我只想运行 javascript(包括我页面中的 jquery 语句),并且接受的答案(1000s kudos to you Scottingham!)是起点。您只需从 getUserWindow 使用 jQuery 重新定义 $ 符号!

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

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

例如

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

并记住 selenium 只能看到页面上实际可见的内容......在那种情况下你的 jquery 选择器也是如此

于 2019-02-26T14:03:33.977 回答