Selenium網站自動化測試: 讓瀏覽器模擬成手機瀏覽手機版網站
這篇文章主要討論如何將瀏覽器模擬成手機,讓網頁回傳手機頁面的版面。
許多的網站都會提供幾種不同的版面。一個是電腦瀏覽版,另外一種就是手機或是平板瀏覽版面。
我們可以準備手機與平板進行測試。
但是,我們其實也可以直接對瀏覽器做設定就可以達到同樣的測試較果。
如何做這樣的設定,自動化測試程式如何實作就是這篇文章要討論的範圍。
User Agent
網站如何識別該連線過來的瀏覽器是手機還是電腦? 主要靠的就是 user Agent
user Agent 是Http header 中的一個參數值,
只要適當的修改這個值傳送到網站
網站就會根據對應的瀏覽器顯示不同的頁面
User Agent 的值有哪些呢? 可以參考下列這個網站:
http://www.useragentstring.com/pages/useragentstring.php
舉例來說下列字串就代表 iPhone/Safari
“Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7”
既然修改 UserAgent 就可以達到模擬手機瀏覽器,那麼程式要如何實作呢?
很簡單,我們只要透過 Selenium所提供的 Browser profile ,即可
profile.setPreference(“User Agent Strings Here”);
Java User Agent 程式實作
[pastacode lang=”java” message=”” highlight=”” provider=”manual”]
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
public class userAgentFirefox {
public static void main(String... args){
FirefoxProfile profile = new FirefoxProfile();
//profile.setPreference("browser.shell.checkDefaultBrowser", true);
profile.setPreference("general.useragent.override", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7");
FirefoxDriver driver = new FirefoxDriver(profile);
driver.get("http://www.google.com");
}
}
[/pastacode]