2013-02-16 89 views
0

我在用Perl和Selenium構建一個測試自動化項目。我正在使用頁面對象模型。我對Selenium驅動程序適合實現頁面對象模型的位置有些不確定。實現頁面對象模型

應該每個頁面對象'有'驅動程序?我在想的方式是每個頁面對象代表一個頁面提供給用戶的一組服務。考慮到這個概念,一個頁面對象與驅動程序沒有'一個'的關係。頁面對象與驅動程序交互。不過,我仍在尋找建議。我應該將驅動程序作爲Web應用程序中每個頁面對象的一部分嗎?

謝謝!

回答

0

我總是將驅動程序作爲每個頁面對象的一部分。我認爲驅動程序的方式是它代表當前頁面的狀態。它允許訪問URL,頁面源等。

現在,每個頁面都有一個當前URL,頁面源代碼,頁面標題,它們都可以通過驅動程序訪問。

+0

感謝您的輸入,nrbaf​​na。這就是我最終選擇的方法!你說的對 !我意識到與頁面進行交互的唯一方法是通過驅動程序,並且我將驅動程序傳遞給它,以便它不像每個頁面都創建一個新的驅動程序。 – 2013-02-27 22:40:15

1

這個答案與@zodvik和你的思維過程沒有太大區別,但是是另一種可選的方法。除了傳遞驅動程序外,您還可以創建一個每個頁面對象都可以從中繼承的抽象類。從抽象類中,還可以包含一些常見的功能方法,您會發現自己經常使用這些方法。

這至少是我在Java語言中做的。

0

我認爲驅動程序不是頁面對象的一部分,對我來說,驅動程序是訪問頁面對象的方法,所以它在邏輯上與頁面無關。 我們只在頁面類中包含驅動程序對象,所以我們可以將驅動程序對象傳遞給類,這就是爲什麼我們在頁面類外部初始化驅動程序。 例如: WebDriver driver = new FirefoxDriver(); LoginPage login = new LoginPage(driver); .....

相關問題