2013-07-25 19 views
0

我正在嘗試使用Microsoft的編碼UI自動輸入html頁面中的值。當我使用常規方法(即通過動作記錄得到的硬編碼值)時,一切正常,但如果我使用params方法並將它傳遞給顯式值,它根本不起作用;更糟糕的是,測試在這一點上並沒有失敗,它似乎跳過了這一步。 我希望當我設置測試的數據驅動方面時,或者如果還有別的東西我可以嘗試時,我希望有人能給我一個我缺少的東西(如果有的話)的想法。感謝 埃裏克編碼的ui params方法不起作用

下面是從測試本身 [DeploymentItem( 「PFChecks \數據\ Company.xml」),數據源( 「Microsoft.VisualStudio.TestTools.DataSource.XML」 數據連接字符串,「| DataDirectory目錄| \ Company.xml「,」Iteration「,DataAccessMethod.Sequential),TestMethod]

以及嘗試使用params方法設置字段值的代碼行。 usEnterSSN.methodUserSyncEnterSSNParams.UISsnoEditText =「012831444」;

該方法只有一個對象被使用,即UISsnoEditText對象。對象名稱在用戶界面地圖中是正確的,並與網頁本身的名稱相匹配。如果我明確地設置了值(如上所述)或者如果我使用TestContext.DataRow方法,則params方法無法工作。 如果我可以提供任何進一步的信息來幫助回答這個問題,歡迎任何想法並告訴我。 謝謝 erik

+0

你能澄清「它根本不起作用」嗎?它做什麼,它不做什麼?例如,它是否輸入了記錄測試時輸入的值? – AdrianHHH

+0

如果我使用... usEnterSSN。methodUserSyncEnterSSN();那麼它輸入正確的信息並且測試正常進行。 如果我使用... usEnterSSN.methodUserSyncEnterSSNParams.UISsnoEditText =「012831444」;那麼在場上什麼都不會輸入,但測試仍然通過。順便說一下,此處指定的值(012831444)與使用usEnterSSN.methodUserSyncEnterSSN()時所輸入的值相同。 – user2201221

+0

查看更新的答案。 – AdrianHHH

回答

0

發生三件事。

(1)上述任務是否在正確的位置? uimap...xxxParams.yyyEdit = ...;應該在使用它的方法的調用之前。 (2)您可以使用Visual Studio調試器設置斷點並逐步執行Coded UI測試。在codeduitest.cs文件(你需要右鍵單擊並選擇調試測試

(3)從評論澄清的問題。你需要有兩種分配和調用。所以一般形式爲uimap...xxxParams.yyyEdit = ...; uimap...xxx();。該方法調用讀取從...Params值,默認值有記錄測試時輸入的值,分配覆蓋了...Params項目的默認值。

有驅動測試從http://blogs.msdn.com/b/mathew_aniyan/archive/2010/02/11/content-index-for-coded-ui-test.aspx鏈接數據的一些很好的討論,以及許多其他關於編碼UI測試的項目。

+0

這樣做,謝謝!我仍然有點困惑,但在過去,我已經能夠使用usEnterCompanyNum.methodUserSyncEnterCompanyNumberParams.UICpny_idEditText = TestContext.DataRow [「comp_id」]。ToString();本身不需要添加, usEnterCompanyNum.methodUserSyncEnterCompanyNumber();直接在它後面的 。 這是最近發生了什麼變化,或者我是某種術士讓它以前的另一種方式工作嗎? 謝謝 erik – user2201221

0

有兩件事我能想到。

  1. 在編輯之前將代碼移動到UIMap.cs文件,然後從那裏開始工作? 如果不是,你應該這樣做。

  2. 嘗試從UIMap.uitest文件中刪除某些搜索屬性和過濾器屬性。

如果這沒有幫助,我需要更多的信息,甚至可能是屏幕蓋。

+0

1.我不需要修改UIMap文件,所以我只是把它留在設計器文件中。 2.我嘗試刪除可能導致混淆的所有搜索和過濾器屬性;但頁面上沒有太多對象會讓它感到困惑。我很樂意插入一個屏幕蓋;你想看見什麼?謝謝, erik – user2201221

+0

我認爲你想要做的是改變測試中使用的值。在這種情況下,你應該把它移動到UIMap.cs並在那裏編輯它。 – matthiasgh