2015-04-29 24 views
0

我在這裏有一個奇怪的情況,我無法找出原因並修復。vbscript sendkeys在系統重啓後只能工作一次

我一直在使用HP UFT 11.52寫了一個腳本在IE8

這裏測試.NET Web應用程序的代碼是:

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Click 
    Set objSSN=Createobject("Wscript.Shell") 
    objSSN.SendKeys" " 
    Set objSSN=Nothing 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Object.Focus() 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set 100-10-1000 
End If 

此代碼運行正常,當我啓動後運行該腳本我windows筆記本電腦如果我第二次運行相同的代碼,代碼將不會進入該空間,因此不會進入SSN。現在輸入一個空格是必需的,因爲點擊webedit會導致一個空白的選擇,所以如果我輸入一些腳本,它會給出錯誤的數據。

在虛擬機上運行這些腳本的團隊成員在運行此腳本時沒有任何問題。所以我懷疑有一些設置在IE或窗口某處需要修改。

任何人都可以幫助我找出問題。

回答

0

而不是發送一個空間嘗試改變replay type to device,然後Set空間

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then 
    Setting.WebPackage("ReplayType") = 2 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set " " ' This may not be needed 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set "100-10-1000" 
    Setting.WebPackage("ReplayType") = 1 
End If 
0

要在使用QTP的文本框中輸入SSN,我們是否必須真的點擊&重點?

下面的腳本應該沒問題。

If Browser(x).Page(x).Frame(x).WebEdit(abc).Exist(0) Then 
    Browser(x).Page(x).Frame(x).WebEdit(abc).Set "100-10-1000" 
End If 
+0

我跟你提到Vinoth上面的代碼試過的。但它不起作用,我然後嘗試sendkeys並進入一個空間,它的工作。但現在這個問題似乎有所不同,它只在我重新啓動Windows之後纔有效。 – Zincloid

+0

當你說它不起作用 - 究竟發生了什麼?我不理解在你的情況下使用'sendkeys'。如果你在SSN文本框中需要一個空格,可以使用Browser(x).Page(x).Frame(x).WebEdit(abc).Set「」'。也應該工作。 – vins

+0

如果我不添加一個空格並只設置該值,那麼它隨機有時會設置該值,有時它不會。如果我手動點擊該字段,它不會直接顯示光標閃爍,而是選擇整個webedit的空白空間。手動我必須再次點擊才能顯示光標。如果我不重複與手動步驟中提到的完全相同的步驟,則不會在現場輸入數據。所以我想一個空間角色會有所幫助,而且它的工作原理 – Zincloid