需要帮助来解决问题。我有一个通过UFT运行的应用程序,这是一个简单的基于web的应用程序。我将笔记本电脑连接到触摸屏显示器,这样我的老板就可以使用简单的触摸和导航来检查该应用程序中显示的进度,而不是使用鼠标点击。
我需要显示一个特定的视图10分钟,如果我没有得到任何触摸活动在这10分钟的屏幕上,我需要改变视图并进入下一页。如果应用程序上有一个活动(简单的滚动或点击或放大),那么我需要等待10分钟,然后转到下一页。我如何使用UFT实现这一点?我如何告诉UFT应用程序上有一个活动,因此"不要"再转到下一页10分钟?
页面上的所有对象都是正常的UFT可识别对象,如webblink, WebElement等,但活动甚至可以只在浏览器上发生(如果用户决定只是放大-发生在任何智能手机上的方式)
这并不是UFT真正想要做的事情,但它可以通过使用UFT的Browser.EmbedScript / RunScript
功能来实现。
将以下代码放入JS文件中(例如C:timeStamp.js
)。
['touchstart', 'touchmove', 'touchend', 'touchcancel'].forEach( function(eventName) {
window.addEventListener(eventName, function () {
window._lastTouchEvent = new Date().getTime();
}, true);
});
if (!window._lastTouchEvent)
window._lastTouchEvent = new Date().getTime(); // Initialize to when the script was loaded
function minutesSinceLastTouch() {
var diff = new Date().getTime() - window._lastTouchEvent;
return diff / (60 * 1000); // Convert MS to minutes
}
现在minutesSinceLastTouch
功能可供RunScript
使用。
Browser(B).EmbedScriptFromFile "C:timeStamp.js"
elapsed = 0 ' How much time since last touch
Do While elapsed < 10
Wait (10-elapsed)*60 ' Wait till 10 minutes after last touch
elapsed = Browser(B).Page(P).RunScript("minutesSinceLastTouch()")
Loop
Print "Loop exited, move to next page"