 |
Photo by NASA on Unsplash |
selenium Web Test Development - selenium-webdriver Install
測試環境:Windows
前提:已完成nodejs安裝
情境說明:
使用nodejs來進行,網頁前端的測試,主要測試的項目有「結構」、「行為」 等是否完整
在同樣一個頁面上,可以測試的項目用記憶的方式完整一個頁面的測試,但是在一個功能上可能需要點擊過幾個頁面才可以達到一個目的。
就比如說一個購物流程,在點選商品到完成結帳,有好幾個步驟需要進行
- (複數個)商品加入購物車
- 在購物車內增減商品
- 付款方式
- 物流方式
在這樣一個流程上面,所以進行的動作可能需要好幾個步驟才能完成一種測試,
為了不要讓行為混亂以及讓行為可重複驗證,自動化的檢測是必要的
套件運用:
官網-
Selenium 是一個可以提供自動化檢測的工具
在瀏覽器上也可以直接安裝,不用透過程式碼也可以進行檢測動作
Search
Selenium IDE
而在nodejs上所用的套件是
selenium-webdriver
在linux與windows安裝方式都一樣
npm install selenium-webdriver
安裝完成後就可以開使用 selenium-webdriver
第一支範例
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
url = 'http://www.google.com';
driver.get(url);
driver.findElement(By.name('q')).sendKeys('google search');
// 關閉瀏覽器
// driver.quit();
這樣就是一個簡單的測試項目
不過.....
這個簡單的測試項目會有一個問題,當載入頁面時,
當html element還沒完全載入就有可能執行
sendKeys,
變成執行錯誤。
所以.....要使用nodejs特性,改成下列方式
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
url = 'http://www.google.com';
driver.get(url).then(function(){
driver.findElement(By.name('q')).sendKeys('google search');
// 關閉瀏覽器
// driver.quit();
});
這樣就可以正常執行了
小筆記,
前端測試,
網站自動化測試,
DevOps,
javascript,
nodejs,
selenium,
selenium-webdriver,
Test,
Web Test Development,
web測試