我使用Selenium 2 Web Driver與C#.Net創建了測試。在閱讀了很多Selenium文檔之後,我不確定是否遵循了正確的設計模式,並且不確定如何使用PageObject設計模式進行測試。使用PageFactory將我現有的代碼轉換爲PageObject設計模式
這裏是我當前的代碼,我用我的網頁上,其工作
WaitForElement(By.CssSelector("input#ctl00_ctl00_signinControl_txtUsername")).SendKeys("abc123");
WaitForElement(By.CssSelector("input#ctl00_ctl00_signinControl_txtPassword")).SendKeys("password");
SelectElement select;
IWebElement selElement = WaitForElement(By.CssSelector("select#ctl00_ctl00_ddlGoTo"));
select = new SelectElement(selElement);
select.SelectByText("Homepage");
*<more code .....>*
我也已經告訴我不能使用pageFactory使用Select
頁面元素。
是否需要按我編碼的方式更改我的代碼?任何反饋都會很棒。
爲什麼不能使用'Select'類?我看不出爲什麼沒有。頁面對象模式僅僅是將你的測試從他們的元素中分離出來,以及它們如何相互作用。你的測試*不應該關心如何找到一個元素,這是你的頁面對象的責任。 – Arran 2013-02-13 09:24:55
如果您使用PageFactory,則每個屏幕控件都會自動實例化爲「WebElement」(而不是相應的子類,例如「Select」)。當您即將與屏幕控件進行交互時,您可以在運行時將'WebElement'強制轉換爲'Select' - 但它不是很乾淨;如果你可以首先將它初始化爲一個「選擇」,它會更好。 – 2013-04-30 11:13:11