我正在嘗試使用Specflow來自動化使用Selenium的Web測試。到目前爲止,事情總的來說還不錯,但我現在遇到了一個問題。我的一個步驟,允許用戶輸入的變量,步驟如下:傳遞變量作爲數組specflow c#
Given I click the (VARIABLE) Menu
和它背後的代碼是相當簡單的,只是基於傳遞文本鏈接上點擊:
driver.FindElement(By.XPath("Xpath to get to the variable")).Click();
但是,有一個後續步驟必須使用此信息。這很好,你可以使用「ScenarioContext.Current.Add(字符串,變量)」,我知道這一點,並一直在使用它。它起到了我首先通知的需求的作用。
我的問題是,現在企業希望能夠同時添加多個項目。這提出了兩個問題。試圖第二次調用該步驟會引發異常:「已添加具有相同密鑰的項目。」如果我把它放到場景綱要中,這將允許我在第二次運行中第二次調用該變量,那麼我不能在最後一步中使用第一個變量。
從邏輯上講,這意味着多次傳入變量是一個問題(這是有道理的,因爲它是作爲字符串傳入的),因此將該變量作爲數組傳遞似乎是合乎邏輯的方式。這個想法是,當我將參數從一個步驟傳遞到另一個步驟作爲一個數組而不是一個字符串時,我理論上不會遇到這個錯誤,然後我將能夠迭代數組中的項目一步一個for循環。這似乎是SpecFlow應該能夠做到的事情,但我在找出如何實現這一點的問題。有沒有人有關於如何做到這一點的想法?我試圖僅僅使用:
Scenario.Context.Current.Add(string, variable).ToArray();
然而,這並不工作,所有的「ToArray的」的例子我可以SpecFlow文檔中發現似乎沒有要真正改變的變量你傳從一個步驟到另一個步驟到一個數組中,它似乎僅用於單個步驟內部,並且從未在步驟之間傳遞。在SpecFlow中使用ScenarioContext.Current.Add(string,variable)作爲數組傳遞參數?
在此先感謝。