加载一个包含有用的selenium测试功能的外部js文件

selenium中的runScript命令真的很有用,我正在使用它来汇总表中的值,然后像这样存储值

<tr>

<td>runScript</td>

<td>var cumulative = 0.0; $('table.quote-review-group-component').eq(0).find('tr').each( function( i,el ){var singleStackTotal = $(el).find('td').eq(4).html();if( singleStackTotal ){cumulative += parseFloat( singleStackTotal.substring(1) );} }); cumulative = cumulative.toFixed(2)</td>

<td></td>

</tr>

<tr>

<td>storeEval</td>

<td>selenium.browserbot.getUserWindow().cumulative</td>

<td>cumulative</td>

</tr>

<tr>

<td>echo</td>

<td>${cumulative}</td>

<td></td>

</tr>

<tr>

<td>verifyEquals</td>

<td>£${cumulative}</td>

<td>${total}</td>

</tr>

理想情况下,我希望能够指向外部js文件,而不是在命令中将javascript作为字符串,以便可以加载一些测试函数并使用storeEval来获取函数的返回值

所以我们有

<tr>

<td>runExternalScript</td>

<td>/path/to/external/extra-tests.js</td>

<td></td>

</tr>

<tr>

<td>storeEval</td>

<td>selenium.browserbot.getUserWindow().getCumulative(0)</td>

<td>cumulative0</td>

</tr>

<tr>

<td>verifyEquals</td>

<td>£${cumulative}</td>

<td>${total}</td>

</tr>

外部脚本看起来像这样

function checkSingleGroupListTotal( index ){

if ( index == "undefined" ){

index = 0;

}

var cumulative = 0.0;

$('table.quote-review-group-component').eq(index).find('tr').each( function( i,el ){

var singleStackTotal = $(el).find('td').eq(4).html();

if( singleStackTotal ){

cumulative += parseFloat( singleStackTotal.substring(1) );

}

});

return cumulative.toFixed(2);

}

考虑一下它,一个插件会添加一个loadScript动作,该动作将检查外部js文件,然后将文件内容传递给runScript来完成此工作。但是我不想重新发明轮子,而且我以前从未构建过插件。

回答:

runScript命令仅将<SCRIPT>包含脚本的元素添加到DOM,然后让浏览器运行它。您可以自己执行相同操作,而不是使用内联脚本,而可以使用SRC=属性告诉浏览器加载哪个文件。您可能必须从Web服务器加载文件,因为某些浏览器不允许从网络加载的页面访问file:URL。

以上是 加载一个包含有用的selenium测试功能的外部js文件 的全部内容, 来源链接: utcz.com/qa/412286.html

回到顶部