我在UFT中使用描述性编程。在播放过程中,我想检查Windows打印对话框是否确实出现。然后我想单击该对话框中的“取消”按钮。 我的问题:偶尔QTP无法识别打印对话框,因此单击取消按钮失败。 这怎么可能有时失败,有时会成功?
我的代码语法如下:
Set Window_EnterMeter = browser_servicemanager.Window("regexpwndtitle:=Enter Meters.*")
Set dialog_Print = Window_EnterMeter.Dialog("regexpwndtitle:=Print")
Set winbtn_CalcelPrint = dialog_Print.WinButton("regexpwndtitle:=Cancel")
fn chckprintpopupwndow()
{ ''''''''Navigating to that page
call Absolutehighlight(Button_Action)
call Absolutehighlight(Meter_Entry)
call Absolutehighlight(PrintMeter_Opt2)
AbsoluteClick(PrintMeter_Opt2)
EnterMeters_Window.WebElement("html id:=ctl00_Save_BTN_C").Click
'''''''By click on abve option window popup print option appears and UFT not identifying that window all times, so clicking on cancel button not doing so TC fails
dialog_Print.Activate
AbsoluteClick(winbtn_CalcelPrint)
EnterMeters_Window.WebElement("html id:=ctl00_Cancel_BTN_C").Click
}
答案 0 :(得分:1)
您的问题可能与您在导航到存在对象的页面之前存储对象的引用有关。
相反,在点击打开“打印”对话框的按钮后,尝试这样的事情(记住要输入相关的对象标识符):
Window().Dialog().Activate
AbsoluteClick Window().Dialog().WinButton()
Window().WebElement().Click
答案 1 :(得分:1)
我找到了这个问题的根本原因,实际上是在虚拟机(VM)中运行整个脚本。在一些回放过程中,我最小化VM并在本地系统上工作,因此在最小化期间,UFT无法检测到winobject,并且在最小化模式下也不会对(发送键)任何按键事件起作用。我们可以通过更新注册表编辑来解决最小化问题。欲了解更多详情,请访问: - can we execute QTP script on remote machine by keeping session minimized
答案 2 :(得分:0)
我解决了这样的问题,而不是单击该窗口上的取消按钮,我称之为close属性 dialog_Print.Activate dialog_Print.Close 这工作正常,但我仍然无法理解为什么UFT没有识别某些播放窗口?
绝对点击功能只是这样做: AbsoluteClick(对象) {object.Refreshobject object.Click}
我正在使用它进行点击以避免另一个UFT问题