使用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标记。
标签:
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