考慮這個腳本:QTP:如何在檢查點屬性編輯對話框中獲取「複雜值」編輯控件?
SystemUtil.Run "notepad.exe"
With Window("Notepad")
.WinEditor("Edit").Type "A"
.WinEditor("Edit").Type micReturn
.WinEditor("Edit").Type "B"
.WinEditor("Edit").Check CheckPoint("Edit")
End With
編輯關卡只檢查了WinEditor的Text屬性等於我們輸入的內容:「A」,回車,換行,「B」。 (這正是編輯器所包含的內容,您可以通過查看GetROProperty ("Text")
進行驗證,它將返回一個長度爲4的字符串,其ASCII碼爲65,13,10,66,這正是我所期望的。)
如果我通過使用最後一個Type調用的活動屏幕創建檢查點,並使用其中包含的值創建檢查點,然後在編輯Text屬性值的對話框中獲得「複雜值」編輯控件。它只需按Enter即可支持輸入換行符。到現在爲止還挺好。
如果我手動創建檢查點並手動輸入Text屬性的期望值,那麼我會得到一個簡單的編輯控件。我不能輸入帶有換行符的字符串。
問題是:如果我最初沒有創建帶有「複雜」值的檢查點,例如沒有換行符的字符串,如何使用複合值編輯控件輸入預期的字符串值?
如果我完全不能這樣做,這將是一個設計故障 - 考慮這個:假設你使用活動屏幕創建它,然後編輯預期值爲一件小事。這導致從現在開始的(微不足道的)期望值只能通過簡單的編輯控件進行編輯 - 而且我無法撤銷我的更改並重新編輯期望值以包含換行符。
一個想法是創建一個正則表達式。以上示例的正則表達式爲"A\cM\cJB"
。然而,這不起作用。一個單獨的問題(QTP: How do I match (or parametrize) line breaks in multiline edit controls?)詢問爲什麼,所以讓我們試着避免這個問題中的這個正則表達式方面。 另外,我不知道如何將包含換行符的這些值參數化爲數據表列,如果不是作爲正則表達式的話。我無法在數據表單元格中輸入換行符。但是這個方面也存在於正則表達式問題中,所以我們也要避免這方面的問題。
似乎這不是一個簡單的問題。無論何時如此,答案通常是「這不是一個功能,這是一個錯誤」。 :( – TheBlastOne 2011-04-12 10:59:18