亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Watir
Watir Webdriver的Page Object應用
作者:網絡轉載 發布時間:[ 2014/2/7 16:04:36 ] 推薦標簽:Watir Webdriver Object

Page Objects是一種設計模式,用來將頁面上的對象進行模塊化。通過消除重復的對象,建立起一個抽象基類,從而使得你在開發瀏覽器自動化測試腳本時有更好的維護性和更強的健壯性。

Page Objects可以從兩個方面來看待:
從測試開發人員的角度來看, 一個Page Object可以看作一個服務。
從開發人員的角度來看, 一個Page Object可以看作良好結構的頁面對象。

對于Page Objects來說,一定要理解,它是提供一個服務的對象,而不用更詳細的研究它的方法以及結構的細節。

我們來舉一個簡單的例子,比如一個Web Mail的收件頁面, 我們可以把它想象成一個服務,能夠提供寫信,讀信,展示來信的主題等功能,對于我們測試來說,它這些功能是怎么實現的不是我們考慮的范圍。

對于Page Objects來說,返回值應該是其他的Page Objects,這意味著我們是在不同的Page Objects中進行數據交互。

我們用login page來做個例子


public class LoginPage {
    public HomePage loginAs(String username, String password) {
        // ... 成功的login
    }
   
    public LoginPage loginAsExpectingError(String username, String password) {
        //  ...失敗的login
    }
   
    public String getErrorMessage() {
        // 判斷一下錯誤的內容
    }
}

從上面我們可以看到,不但要考慮成功的login到下一個page,也得考慮失敗的login是轉入那個page,還是在page上顯示錯誤信息?紤]的都是page這個整體需要處理的行為。


另外,我們應該考慮的是,我們的測試應該是著重判斷page的狀態,拿inbox舉例子:

public void testMessagesAreReadOrUnread() {
    Inbox inbox = new Inbox(driver);
    inbox.assertMessageWithSubjectIsUnread("I like cheese");
    inbox.assertMessageWithSubjectIsNotUnread("I'm not fond of tofu");
}

我們的斷言,是放在page的狀態上,也可以這么寫:

public void testMessagesAreReadOrUnread() {
    Inbox inbox = new Inbox(driver);
    assertTrue(inbox.isMessageWithSubjectIsUnread("I like cheese"));
    assertFalse(inbox.isMessageWithSubjectIsUnread("I'm not fond of tofu"));
}

當然,我們也要先通過webdriver來判斷我們所在的頁面是對的,或者說我們要操作的Page Object是已經出現了

public class LoginPage {
    private final WebDriver driver;

    public LoginPage(WebDriver driver) {
        this.driver = driver;

        // 判斷我們在正確的頁面上
        if (!"Login".equals(driver.getTitle())) {
            //如果不在,那報錯
            throw new IllegalStateException("This is not the login page");
        }
    }

    // 理論上講,login Page Object能提供Login As的服務
    public HomePage loginAs(String username, String password) {
        // 在這里是的詳細操作步驟
        driver.findElement(By.id("username")).sendKeys(username);
        driver.findElement(By.id("passwd")).sendKeys(password);
        driver.findElement(By.id("login")).submit();
        
        //返回對象應該是一個新的Page Object
        return new HomePage(driver);
    }
}

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产高清在线丝袜精品一区 | 在线不卡一区 | 一区二区三区高清在线观看 | 午夜影视在线视频观看免费 | 男女污污无遮挡免费观看 | 中文字幕不卡一区 | 亚洲日韩aⅴ在线视频 | 国产丰满老妇伦子www | 天堂网免费视频 | 免费狼人久久香蕉网 | 在线观看理论片免费韩国 | 2020国产成人免费视频 | 日韩麻豆国产精品欧美 | 黄片a级毛片 | 日韩欧美高清在线观看 | 狠狠色丁香婷婷综合小时婷婷 | 成人精品国产亚洲 | 久久成人精品视频 | www国产永久免费视频看看 | 中文三 级 黄 色 片 | 最近中文字幕2019视频1 | 国产成人一区二区三区高清 | 欧美日韩精品乱国产538 | 看全色黄大色大片免费久久久 | 中文字幕免费看 | 97视频在线免费 | 亚洲激情一区 | 国产精品久久久久乳精品爆 | 最近2019中文字幕免费看最新 | 免费的a级毛片 | 在线看免费毛片 | 亚洲伦理视频 | 欧美日韩精品一区二区三区不卡 | 亚洲经典在线中文字幕 | 亚洲麻豆 | 日韩在线观看视频免费 | 激情综合激情五月 | 韩日一区二区 | 操你啦在线视频 | 亚洲精品国产成人专区 | 99久久亚洲 |