使用jquery和selenium IDE 1.0.8获取元素

use*_*618 10 jquery selenium selenium-ide

我正在尝试使用jquery和Selenium IDe 1.0.8获取元素.

<td>storeValue</td>
<td>$('#result').find('img').filter('[alt=&quot;NameOfPhoto&quot;]').eq(0)</td>
<td></td>
Run Code Online (Sandbox Code Playgroud)

在日志里我得到了

[error] Element $('#result').find('img').filter('[alt="NameOfPhoto"]').eq(0) not found 
Run Code Online (Sandbox Code Playgroud)

当我把这个命令放在firebug中时,我得到了这个元素:/

为什么它不起作用?

编辑:或者,例如,您可以给我代码如何在stackoverflow的主页上获取第一个对象的ID和JAVA标记.

标签:

<a rel="tag" title="show questions tagged 'java'" class="post-tag" href="/questions/tagged/java">java</a>
Run Code Online (Sandbox Code Playgroud)

和示例结果来自:

<div id="question-summary-4303985" class="question-summary narrow">
Run Code Online (Sandbox Code Playgroud)

是:

question-summary-4303985
Run Code Online (Sandbox Code Playgroud)

Joh*_*dom 9

根据其他帖子,我尝试了以下内容并且有效.

将以下代码添加到user-extensions.js:

function jQuery (selector)
{
    return selenium.browserbot.getUserWindow().jQuery(selector);
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用关键字jQuery而不是$来访问任何jQuery函数.只需确保您正在测试的页面引用了jQuery js文件.


Qua*_*Van 8

要在Selenium IDE中使用jQuery,它的位置如下.(一定要在页面中加载jQuery)

this.page().getCurrentWindow().wrappedJSObject.jQuery()
Run Code Online (Sandbox Code Playgroud)

您可以将函数位置存储在Selenium变量中.

<tr>
    <td>store</td>
    <td>this.page().getCurrentWindow().wrappedJSObject.jQuery</td>
    <td>jq</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的测试中使用它们,如:

<tr>
    <td>assertEval</td>
    <td>${jq}('div').attr('foo')</td>
    <td>bar</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

上面的匹配<div foo='bar' />使用jQuery.


编辑:或者您可以通过以下方式访问它:

this.browserbot.getUserWindow().jQuery
selenium.browserbot.getUserWindow().jQuery
Run Code Online (Sandbox Code Playgroud)

备选来源:http://cssgreut.wordpress.com/2010/12/20/run-selenium-ide-tests-with-jquery-selectors/