Load an external js file containing useful test functions in selenium(在 selenium 中加载包含有用测试功能的外部 js 文件)
问题描述
selenium 中的 runScript 命令真的很有用,我用它来汇总表中的值,然后像这样存储值
The runScript command in selenium is really useful, and I'm using it to total values in a table and then store the value like this
<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 来获取函数的返回
Ideally I'd like to be able to point to an external js file rather than have the javascript in the command as a string, so that I can load in some test functions and use storeEval to get the return of the function
所以我们有
<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 就可以完成这项工作.但我不想重新发明轮子,而且我之前从未构建过插件.
Thinking about it a plugin which adds a loadScript action which checks for the external js file and then passes the file contents to runScript would do the job. But I don't want to reinvent the wheel, and I've never built a plug in before.
推荐答案
runScript
命令只是将包含脚本的 <SCRIPT>
元素添加到 DOM 并让浏览器运行它.你可以自己做同样的事情,而不是使用内嵌脚本,使用 SRC=
属性来告诉浏览器要加载什么文件.您可能必须从 Web 服务器加载文件,因为某些浏览器不允许从网络加载的页面访问 file:
URL.
The runScript
command merely adds a <SCRIPT>
element containing the script to the DOM and lets the browser run it. You can do the same yourself, and instead of an in-line script, use the SRC=
attribute to tell the browser what file to load. You may have to load the file from a web server, because some browsers won't allow page loaded from the net to access a file:
URL.
这篇关于在 selenium 中加载包含有用测试功能的外部 js 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 selenium 中加载包含有用测试功能的外部 js 文件
基础教程推荐
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01