什么是Firefox profile
要了解Firefox profile請(qǐng)?jiān)L問(wèn)這里烤宙,它詳細(xì)解紹了Firefox proflie畜埋。在Firefox里隅津,如何管理Firefox profile 請(qǐng)?jiān)L問(wèn)這里辩撑∮加欤看完它們方面,相信你對(duì)Firefox profile會(huì)有所了解放钦。好了,必備的知識(shí)準(zhǔn)備完了恭金,讓我們來(lái)看看selenium webdriver 是怎么操作Firefox profile的吧操禀。
設(shè)置profile中的一個(gè)preference
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("aaa", "bbbb");
WebDriver driver = new FirefoxDriver(profile);
以上代碼在Firefox Profile文件中設(shè)置一個(gè)名aaa,值為bbb的preference.(ps:這個(gè)preference只是一個(gè)舉例横腿,沒(méi)有任何意義颓屑。要看 firefox profile有哪些preference,可以在firefox瀏覽器地址欄中輸入:about:config). 代碼運(yùn)行后斤寂,在firefox瀏覽器地址欄中輸入:about:config,可以看到它揪惦。
啟用已經(jīng)存在的profile
首先來(lái)了解一下為什么要已經(jīng)存在的profile遍搞,其中一個(gè)原因是已經(jīng)存在的profile里面保存有cookie等信息,可以保持用戶的登錄狀態(tài)器腋。
啟動(dòng)已經(jīng)存在的profile溪猿,因profile不同而有兩種方法。一種是如果這個(gè)profile使用firefox配置管理器(Firefox's profile manager)而已經(jīng)存在了纫塌。我們用下面的方法:
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("WebDriver");
WebDriver driver = new FirefoxDriver(profile);
如果你想啟動(dòng)你平時(shí)用的firefox瀏覽器再愈,可以把上面"WebDriver"替換成"default",代碼如下:
Java代碼
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("default");
WebDriver driver = new FirefoxDriver(profile);
另一種是沒(méi)有在自己的firefox里面注冊(cè)過(guò)的护戳,比如從另一臺(tái)機(jī)子中的firefox得到的,我們可以用下面的代碼:
File profileDir = new File("path/to/your/profile");
FirefoxProfile profile = new FirefoxProfile(profileDir);
WebDriver driver = new FirefoxDriver(profile);
臨時(shí)指定插件
有時(shí)我們需要臨時(shí)讓啟動(dòng)的firefox帶一個(gè)插件垂睬,如firebug,來(lái)定位問(wèn)題等媳荒。首先我們要下載這個(gè)插件的xpi安裝包。剩下的就讓selenium webdriver 來(lái)完成驹饺,如下:
File file = new File("<span style="background-color: #ffffff;">path/to/your/</span>firebug-1.8.1.xpi");
Java代碼
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);
firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1"); //避免啟動(dòng)畫(huà)面
WebDriver driver = new FirefoxDriver(firefoxProfile);
這樣啟動(dòng)的firefox中就安裝了插件firebug.
啟用默認(rèn)情況下被firefox禁用的功能
以本地事件例钳枕,很簡(jiǎn)單直接設(shè)置為true就可以了。
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);
其它設(shè)置見(jiàn)selenium webdriver API中的org.openqa.selenium.firefox.FirefoxProfile.
啟用firefox代理
這個(gè)更簡(jiǎn)單赏壹,直接上代碼了鱼炒。
String PROXY = "localhost:8080";//如果不是本機(jī),localhost替換成IP地址
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy(PROXY)
.setFtpProxy(PROXY)
.setSslProxy(PROXY);
DesiredCapabilities cap = new DesiredCapabailities();
cap.setPreference(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);