我是新來的C#,我試圖爲我所給予的唯一名稱的項目,然後通過在名稱中的步驟定義使用小黃瓜用SpecFlow通過。我的問題是如何在創建對象時添加標識符,這樣我就可以調用該對象,而無需在每次創建步驟時都傳入對象的實際名稱。設置SpecFlow在標識符
因此,例如代碼將是這個樣子:
[When(@"I click the (.*) button")]
public void ClickTheButton(string ButtonName)
{
driver.Click(ButtonName)
//ButtonName would be a string that would call to the ID for the ADD button
}
我希望能夠把像「添加」(太行就寫着「當我點擊添加按鈕」 ),然後讓代碼搜索「ADD」標識符。
我知道在Ruby/Cucumber中這可以通過使用DOM然後傳遞帶有小黃瓜名稱的XML。在Ruby /黃瓜的對象會是這個樣子:
<button gherkin_name="ADD" key="id" value="add_button_12685"/>
然而,我發現絕對沒有做,在C#與SpecFlow的方式,這是一件我真正需要的是能夠做到的。
有沒有辦法做到這一點?我真正想要做的就是將業務用戶實際可以使用的句柄/參數名稱鏈接到Ruby/Cucumber中的頁面對象,而無需讓用戶知道背景中的代碼。順便說一下,這些對象的名稱幾乎與我添加的小黃瓜線相似,因此它們對於用戶編寫而言非常奇怪。這就是我想爲用戶提供一個標識符的原因。
在此先感謝您的幫助。
編輯:我意識到現在我不太清楚我的原始文章,所以也許一些背景將有所幫助。我使用Selenium-Webdriver來測試一個網站上有數百個項目。爲每一頁上的每一個項目寫一個不同的步驟將會非常繁瑣和耗時。因爲有很多具有完全相同的特性完全相同的物品(例如有類似50個按鈕,所有類似的行爲在一個頁面並在網站上是幾十頁)上的網頁,寫了一個方法來測試他們似乎是最合乎邏輯的想法。確定這些項目與企業可以使用將減少對大宗步內的標識,步數寫入,且其可能性,企業用戶會使用這是最終的目標代碼感覺很舒服。
+ l爲最後一段。 –
對不起,我原本沒有明確表態。我的確在使用Selenium,我正在測試一個Web界面。我們有一個頁面對象模型,我試圖與SpecFlow結合使用。我試圖在對象中添加一個標識符,並且有數百個頁面對象,這意味着如果我採用了最後的建議,就會寫出數百個步驟。如果它在網站上,反射仍然有效嗎? – DAP