Web UI 自动化脚本分布执行过程中有时候需要获取浏览器的相关信息,此文给出了一个简略获取浏览器类型的方法,敬请各位小主们参阅。若有不足之处,敬请大神指正,不胜感激!
闲话少述,上码。
1 /**
2 * Get browser type, for execute JavaScript by Selenium
3 *
4 * @author Aaron.ffp
5 * @version V1.0.0: autoSeleniumDemo main.aaron.sele.core SeleniumCore.java getBrowerType, 2015-7-26 12:17:12 Exp $
6 *
7 * @return browser type {Chrome|Firefox|InternetExplorer|Safari}
8 */
9 public String getBrowserType(){
10 String browser = "";
11
12 switch (this.webdriver.toString().split(":")[0]) {
13 case "ChromeDriver":
14 browser = "Chrome";
15 break;
16 case "FirefoxDriver":
17 browser = "Firefox";
18 break;
19 case "InternetExplorerDriver":
20 browser = "InternetExplorer";
21 break;
22 case "SafariDriver":
23 browser = "Safari";
24 break;
25 default:
26 browser = "Chrome";
27 break;
28 }
29
30 return browser;
31 }
测试源码如下所示:
1 /** 2 * Aaron.ffp Inc. 3 * Copyright (c) 2004-2015 All Rights Reserved. 4 */ 5 package main.aaron.demo.browers; 6 7 import main.aaron.sele.core.SeleniumCore; 8 9 import org.openqa.selenium.By; 10 import org.openqa.selenium.WebDriver; 11 import org.openqa.selenium.chrome.ChromeDriver; 12 import org.openqa.selenium.firefox.FirefoxDriver; 13 import org.openqa.selenium.ie.InternetExplorerDriver; 14 import org.openqa.selenium.remote.DesiredCapabilities; 15 import org.openqa.selenium.safari.SafariDriver; 16 import org.testng.annotations.Test; 17 18 /** 19 * 20 * @author Aaron.ffp 21 * @version V1.0.0: autoSeleniumDemo main.aaron.demo.browers GetBrowersInfomation.java, 2015年7月24日 下午5:05:40 Exp $ 22 */ 23 public class GetBrowersInfomation extends SeleniumCore{ 24 private String baseUrl = "http://www.yixun.com/"; 25 26 @Test 27 public void getChromeInfo() throws InterruptedException{ 28 this.webdriver = new ChromeDriver(); 29 30 this.webdriver.get(this.baseUrl); 31 32 System.out.println(this.getBrowserType()); 33 34 Thread.sleep(5000); 35 36 this.webdriver.close(); 37 this.webdriver.quit(); 38 } 39 40 @Test 41 public void getFirefoxInfo() throws InterruptedException{ 42 System.setProperty("webdriver.firefox.bin", "C:/Program Files (x86)/Mozilla Firefox/firefox.exe"); 43 44 this.webdriver = new FirefoxDriver(); 45 46 this.webdriver.get(this.baseUrl); 47 48 System.out.println(this.getBrowserType()); 49 50 System.out.println(this.webdriver.toString()); 51 52 Thread.sleep(5000); 53 54 this.webdriver.close(); 55 this.webdriver.quit(); 56 } 57 58 @Test 59 public void getIExplorerInfo() throws InterruptedException{ 60 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 61 62 capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 63 64 this.webdriver = new InternetExplorerDriver(); 65 66 this.webdriver.get(this.baseUrl); 67 68 System.out.println(this.getBrowserType()); 69 70 this.webdriver.close(); 71 this.webdriver.quit(); 72 } 73 74 @Test 75 public void getSafariInfo() throws InterruptedException{ 76 this.webdriver = new SafariDriver(); 77 78 this.webdriver.get(this.baseUrl); 79 80 System.out.println(this.getBrowserType()); 81 82 System.out.println(this.webdriver.toString()); 83 84 Thread.sleep(5000); 85 86 this.webdriver.close(); 87 this.webdriver.quit(); 88 } 89 }
此方法较为简单,也比较容易理解。同时,我发现在脚本运行过程中,若是 UI 自动化测试脚本报错,报错信息中除了相应的错误信息之外,也会包含有 driver版本、selenium版本、工作机、浏览器 等的详细信息,若是想要获取更详细的信息,以在后续的日志生成中记录响应的信息,则可以通过人为制造异常,从异常中获取相应需要的信息也可。(此种获取方式后续更新,敬请期待)
感兴趣的小主们,可以尝试一下以上异常捕获信息的方法。若是各位大神有更好的方法,劳烦告知,非常感谢!
至此,WebUI 自动化功能测试脚本第 017-获取浏览器类型 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^