1. 程式人生 > >Selenium3基礎4-第一個自動化Java指令碼

Selenium3基礎4-第一個自動化Java指令碼

       這篇文章我們介紹第一個自動化測試指令碼。我的個人經驗是,自動化指令碼編寫比較容易,最大的困難去如何去寫測試斷言。自動化測試,最重要的還是落在測試上面,而不是自動化,自動化只是手段。斷言的寫法,就考驗出一個測試工程師是否考慮全面,體現出你的用例編寫水平。

舉例:驗證開啟連結是百度首頁

分析問題:

我們輸入了url,然後開啟一個頁面,如果判斷這個頁面是不是我們提前知道的頁面呢。

1. 獲取當前url是不是和輸入的一致,假如連結沒有發生重定向。

2. 獲取當前頁面title,是不是我們期待的結果。

3. 在頁面元素body找一個特徵元素,這個特徵元素能夠代表是該網站。

       我想,也大概只有上面三點依據可以判斷我們訪問的網站對不對。第一點,有時候不靠譜,不知道你們是否聽說過盜鏈,就是輸入一個網站URL,顯示的內容是別人的網站,而不是你測試的網站。甚至有連結的重定向出現。第二點,還是比較考慮,title這個值是網站前端開發同學寫入的,基本上可以代表是你要開啟的網站。第三點,有點難找這樣的特徵元素,而且有時候找到了也不一定是正確的。下面的程式碼就用頁面的title來作為我們判斷的依據。

import org.openqa.selenium.chrome.ChromeDriver;

public class FirstScript {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "./Tools/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        // driver.get("https://www.baidu.com");
        driver.get("https://www.csdn.net/");

        try {
            String targetTitle = "百度一下";
            String title = driver.getTitle();
            assert title.contains(targetTitle);
            System.out.println("This is test Web! " + title);
        } catch (Exception e) {
            e.printStackTrace();
        }

        driver.quit();
    }
}

       Java中有一個方法叫assert,中文意思叫斷言,assert後面跟著的是一個表示式,表示式的值是布林型。上面的例子就是,當判斷表示式值是true,就列印Tess Pass。這裡可以看到,我把斷言部分程式碼放在try cathc語句中。編寫指令碼或者編寫程式碼要養成一個好習慣,習慣主動去捕獲異常,並處理異常。這裡我們自動化指令碼,基本上沒有需要去處理異常,一般選擇直接打印出異常資訊就可以。

       到這裡,Selenium WebDriver基礎篇就結束了,下面的文章,主要是介紹WebDriver的一些常見介面或者方法的實際使用,儘量多介紹一些Selenium方法,為後面的方法封裝和框架設計做鋪墊。