- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请帮助我使用 EmbedScriptFromFile
和 RunScriptFromFile
在 QTP/UFT 中执行 JS 文件。
我正在尝试使用 JS 文件获取 N 个值,并在数组中的 QTP/UFT 中接收相同的值。为此,我了解了 QTP/UFT 帮助部分中的 EmbedScriptFromFile
和 RunScriptFromFile
。但是当我尝试使用示例代码时,我无法按预期进行。请帮我解决这个问题
我正在使用的 Java 脚本代码:
function cloneArray(arr) {
var ret = [];
for (var i = 0; i < arr.length; ++i)
ret.push(arr[i]);
return ret;
}
VB 脚本,我正在使用:
Browser("Home").Page("Home").EmbedScriptFromFile "C:\Users\Gopi\Desktop\CloneArray.js" 'Call the function and run the script that returns the array'
Set cloned = Browser("Home").Page("Home").RunScriptFromFile("cloneArray(C:\Users\Gopi\Desktop)")
在执行这两行时出现一些错误 - 对于第一行,我收到错误,因为“对象不支持此属性或方法”。对于第二行,我收到错误消息“参数不正确”。请帮忙
2014 年 12 月 15 日:
我已经尝试了以下建议并且有效!但除此之外,我还尝试从 JavaScript 函数中获取数组值。
创建数组的代码:
function makeArray() {
var myArray = new Array(4);
for (var i = 0; i < myArray.length; i++){
myArray[i] = i+1;
}
return myArray;
}
所以我真正想要实现的是,执行 makeArray()
函数来创建一个数组,并使用 cloneArray
方法创建 QTP/UFT 支持数组,方法是传递makeArray()
将值/数组作为参数返回给 ConeArray(arr)
。但是当我尝试使用以下代码实现此目的时,我无法做到。
Browser("Home").EmbedScriptFromFile "C:\Users\Gopi\Desktop\cloneArray.js"
'Set arr1 = Browser("Home").Page("Home").RunScriptFromFile "C:\Users\Gopi\Desktop\makeArray.js"
Set arr = Browser("Home").Page("Home").RunScript("cloneArray[C:\Users\Gopi\Desktop\makeArray.js]")
For i = 0 To arr.length - 1
msgbox i & ": " & arr.item(i)
Next
EmbedScript
& RunScript
在我单独尝试时工作正常,但在尝试将另一个函数作为参数传递时无法使用。
我尝试在同一个 JS 文件中同时使用这两个函数并调用这些函数,并尝试了其他一些可能性。但没有任何帮助,所以请帮忙。
最佳答案
首先我们应该了解RunScript
和 EmbedScript
函数(及其 FromFile
变体)。
RunScript
是 Page
的一种方法和 Frame
它接受 JavaScript 并执行它,返回脚本的结果(通常是最后一次运行的表达式)。EmbedScript
是 Browser
的一种方法这意味着 “确保此脚本从现在开始在这个 Page
的所有 Frame
和 Browser
上运行”。此函数不返回任何值,因为它的主要目的是在将来运行(尽管它也会立即在 Page
和当前在 Frame
中的现有 Browser
上运行)。 EmbedScript
可用于使 JavaScript 函数在未来可用 RunScript
使用。这些函数的普通版本接受一些 JavaScript 脚本,而 FromFile
变体采用文件名(在文件系统或 ALM 中)并读取该文件。
关于您的问题 - 在您的第二行,您正在执行 RunScriptFromFile
但没有传递文件名,你似乎传递了一个脚本(为此你应该使用 RunScript
)。另外,您传递给 cloneArray
的参数不是有效的 JavaScript 值。
如果你希望它是一个字符串,你应该把它放在引号中,无论如何它看起来像你期待一个数组所以也许你打算这样做:
Set cloned = Browser("Home").Page("Home").RunScript("cloneArray(['Users', 'Gopi'])")
在任何情况下,将 JavaScript 数组传递到 VBScript 都是有问题的,.length
属性工作正常,但索引到数组是一个问题(可能是因为 JavaScript 使用方括号而 VBScript 使用圆括号)。
数组问题的解决方法可能是这样的
// wrapArray.js
function wrapArray(array) {
return {
length: array.length,
item: function(index) {
return array[index];
}
};
}
然后就可以在UFT/QTP中使用下面的了。
Browser("B").EmbedScriptFromFile "C:\wrapArray.js"
Set arr = Browser("B").Page("P").RunScript("wrapArray(['answer', 42])")
For i = 0 To arr.length - 1
Print i & ": " & arr.item(i)
Next
输出:
0: answer
1: 42
关于javascript - EmbedScriptFromFile 和 RunScriptFromFile - QTP/UFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438173/
我用 html 创建了一个简单的表单,它有两个对象(编辑框 - 名字),它们具有相同的属性(如名称、输入和其他),一个在另一个下面。我在其中一个编辑框中记录了一个操作,对象被添加到本地对象存储库中,索
我正在使用Web可扩展性工具包实现对QTP的扩展。 如果我实现QTP操作的JScript函数遇到错误(例如,用户输入了错误的参数值),我希望QTP停止测试执行并通知用户该错误。我希望它充当QTP中的正
我正在寻找使用 QTP 触发弹出式菜单操作的想法。 我正在使用 QTP 测试 Web 应用程序。该应用程序具有“级联”或分层弹出菜单。 例如选项->首选项 在重新编码时,QTP 会识别菜单层次结构的终
我正在尝试使用 QTP 识别框架内显示的内容。我从页面询问所有符合描述的框架并获得框架集合。我从集合中取出第一帧,但由于某种原因,该对象似乎不存在,因此我无法访问内部显示的内容。知道如何提取框架内的内
有人能告诉我我们如何在 QTP 中定义一个变量,该变量将在运行时在一个操作中存储信息,然后该变量将在同一测试的其他操作中使用。 最佳答案 全局范围变量的两个最快选项(尽管还有其他传递数据的方法): 环
我们有一个应用程序,其中正在加载一些文件,并且应用程序在加载文件期间停止响应一段时间。在测试自动化期间,我们有文件加载是自动的场景,但 qtp 必须等到应用程序再次开始响应。如何编码?有没有像“Wai
在给定的测试文件夹中,有以下结构: Action 0 ->快照 ->-> 很多 *.pngs、*.htmls 等。 . . . Action N 快照有什么用?从我在 http://www.geeki
我有一个 ftp 批处理文件,如下所示: open bin cd \Curr_QA_DataLoad put C:\Users\niprakash\Documents\XYZ\7090\Niti
我有以下 HTML 标记,QTP 将其正确识别为 WebEdit 对象: 如何将 HTML 标记中的 _id 属性获取到 QTP 中的对象属性中?我使用“对象标识”对话框将 _id 和 html _
我有以下 HTML 标记,QTP 将其正确识别为 WebEdit 对象: 如何将 HTML 标记中的 _id 属性获取到 QTP 中的对象属性中?我使用“对象标识”对话框将 _id 和 html _
我正在尝试使用 QTP 11.0 Web 可扩展性插件让自定义 Web 元素类型显示在“对象标识”下。 如问题末尾所示,我的扩展程序中有四个文件。我的问题是没有任何对象显示在 Object Ident
我们计划在 Windows 10 上测试我们的应用程序。我们得到了 UFT 12 和 QTP 11,想知道它是否支持 Windows 10。 我试图在谷歌上搜索但没有得到明确的答案。 最佳答案 它支持
有没有人有构建 .NET 测试执行工具的经验,该工具可以执行现有 QuickTest Professional VBScript 自动化脚本中的逻辑,但无需启动 QTP 实例?我们正在过渡到 Visu
在这篇文章中描述了 how to improve QTP’s debug engine QTP 10 和 QTP 11 有什么可能吗? 谢谢! 最佳答案 根据 http://depenga.com/Q
QTP中的等待和同步功能之间有什么区别?另外,请给出一个想法,可以使用什么情况等待功能,以及可以使用情况同步功能。 请帮帮我。 最佳答案 Browser.Sync或Page.Sync等待导航完成,这意
我有一个场景,浏览器状态 =done 但仍未加载页面。 qtp 是否有可以等到页面完全加载的通用程序? 我尝试使用 objBrowzer.sync,objPage.Sync,objPage.waitp
例如,假设一个测试调用了两个动作 A 和 B。 A 通过调用 "Reporter.ReportEvent micFail, ... 执行“失败”的步骤",B 通过调用 "Reporter.Repo
在 QTP 中,有一个存储对象的对象存储库。并且这些对象可以重复使用。重用在这里是什么意思?该对象是否保存在内存中?....对象存储库只是一个 xml 文件,用于存储对象的属性,对吗? 最佳答案 对象
我必须右键单击网络元素。我尝试了以下方法: 为简化代码,假设 webElem 引用有效的 Browser().Page().WebElement()。 1) Set obj=createobject(
我想在发生错误时截取应用程序的屏幕截图并将其保存在特定文件夹中。下面的代码可以工作,但它不会截取应用程序的屏幕截图,而是截取 QTP 代码屏幕的屏幕截图。 Function CaptureImage(
我是一名优秀的程序员,十分优秀!