使用jquery和selenium IDE 1.0.8获取元素

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

storeValue $('#result').find('img').filter('[alt="NameOfPhoto"]').eq(0)  

在日志中,我得到了

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

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

为什么它不起作用?

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

标签:

  

和示例结果来自:

 

是:

 question-summary-4303985 

根据其他post,我尝试了以下内容并且有效。

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

 function jQuery (selector) { return selenium.browserbot.getUserWindow().jQuery(selector); } 

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

要在Selenium IDE中使用jQuery,它的位置如下。 (确保在页面中加载了jQuery)

 this.page().getCurrentWindow().wrappedJSObject.jQuery() 

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

  store this.page().getCurrentWindow().wrappedJSObject.jQuery jq  

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

  assertEval ${jq}('div').attr('foo') bar  

上面使用jQuery匹配


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

 this.browserbot.getUserWindow().jQuery selenium.browserbot.getUserWindow().jQuery 

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

尝试使用jQuery而不是$() 。 美元符号在selenium中有不同的含义。

编辑

据我所知,你不能使用jQuery来选择元素。 谷歌的搜索没有任何结果。 只需使用Xpath。

你有没有在Selenium jar中捆绑jQuery? 如果没有,则无法使用该语法。

使用JavaScript存储当前日期并使用${}将其回显到Selenium日志控制台的${}

  store javascript{new Date} foo   echo ${foo}   

正如您所看到的那样,使用带有JavaScript表达式结果的商店,在表达式中添加javascript{}

您的示例使用javascript{storedVars['bar']}输出存储的变量。

  store javascrip{jQuery('#result').find('img').filter('[alt="NameOfPhoto"]').eq(0)} bar   open javascript{storedVars['bar']}   

Selenium中的JavaScript:

使用javascript{alert('hello')}您可以在值字段中运行JavaScript / jQuery。

Selenium还有一个扩展,用于显示存储哪些变量: http : //reallysimplethings.wordpress.com/2010/09/28/the-stored-variables-viewer-plugin-for-selenium-ide-v1-3-发布/

试试德国Rumm博客的说明

首先,下载Sizzle ,它是jQuery的选择器引擎,并将sizzle.js解压缩到一个方便的位置。
其次,创建空的user-extensions.js文件。 名称可以是您想要的任何方式。
将其添加到user-extensions.js

 PageBot.prototype.locateElementBySizzle = function(locator, inDocument) { var results = []; window.Sizzle(locator, inDocument, results); return results.length > 0 ? results[0] : null; } 

第三,转到Selenium IDE,选项 – >选项…并将sizzle.js和user-extensions.js添加到“Selenium Core extensions”。
重新启动Selenium IDE(只需关闭它的所有实例并再次打开它),现在你可以在任何地方使用sizzle =(locator),其中需要“locator”

你的选择器看起来像:

#result img[alt="NameOfPhoto"]:eq(0)

JQuery选择器大多来自CSS选择器,因此您也可以在selenium中使用它们

css=cssSelector