5、對于第4點提到的關閉保護模式,還可以使用代碼關閉:
1 //啟動IE瀏覽器并關閉保護模式
2 public static void StartIEAndCloseProtectedMode(){
3 System.out.println("start firefox browser...");
4 System.setProperty("webdriver.ie.driver", "files\IEDriverServer.exe");
5 DesiredCapabilities dc = DesiredCapabilities.internetExplorer();
6 dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
7
8 //IE默認啟動保護模式,要么手動在瀏覽器的設置中關閉保護模式,要么在代碼中加上這一句,即可
9 dc.setCapability("ignoreProtectedModeSettings", true);
10 WebDriver driver = new InternetExplorerDriver(dc);
11 driver.get("http://www.baidu.com/");
12 System.out.println("start firefox browser succeed...");
13 }
============================Firefox的firebug插件參數設置(補充)=================================
使用Selenium2(webdriver)啟動firefox且自動加載firebug插件時,切換到firebug插件的網絡和cookies部分時,提示面板已被禁用,如下圖所示:
于是我們輸入about:config在firefox設置頁面試著去找下是否有什么參數控制著面板的禁用/啟用,果然被我找到如下兩個參數:
cookies面板 — extensions.firebug.cookies.enableSites
網絡面板 — extensions.firebug.net.enableSites
Tips:
firefox設置頁面參數非常的多,如果我們不知道某項設置的參數名時,我們可以手工在firefox界面設置參數的值,然后根據我們定制的值去about:config里面找可以找到,從而找到我們要設置的參數。
在代碼中設置這兩個參數的值為true,運行結果如下:
代碼如下:
1 public static void StartFireFoxLoadPlugin(){
2 System.out.println("start firefox browser...");
3 System.setProperty("webdriver.firefox.bin",
4 "D:/Program Files/Mozilla Firefox/firefox.exe");
5 File file = new File("files/firebug-1.9.0-fx.xpi");
6 FirefoxProfile profile = new FirefoxProfile();
7 try {
8 profile.addExtension(file);
9 } catch (IOException e) {
10 e.printStackTrace();
11 }
12 //設置firebug版本
13 profile.setPreference("extensions.firebug.currentVersion", "1.9.0");
14 //自動打開firebug
15 profile.setPreference("extensions.firebug.allPagesActivation", "on");
16 //設置啟用firebug網絡面板
17 profile.setPreference("extensions.firebug.net.enableSites", true);
18 //設置啟用firebugcookies面板
19 profile.setPreference("extensions.firebug.cookies.enableSites", true);
20
21 WebDriver driver = new FirefoxDriver(profile);
22 driver.get("http://www.baidu.com");
23 System.out.println("start firefox browser succeed...");
24 }