首先這次使用的webDriver for Firefox的
由於專案的原因,需要在測試的時候載入Firebug和使用vpn,載入代理
Firefox 載入代理,可以從FF選單上看,代理分為好幾種
我這裡使用的是type 為2 的情況
FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("network.proxy.type", 2); profile.setPreference("network.proxy.autoconfig_url", "http://proxy.myweb.com:8083"); //自動代理配置 WebDriver driver = new FirefoxDriver(profile);
如果type 為1 ,需要這麼設定
FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("network.proxy.type", 1); profile.setPreference("network.proxy.http", "proxy.domain.example.com"); profile.setPreference("network.proxy.http_port", 8080); profile.setPreference("network.proxy.ssl", "proxy.domain.example.com"); profile.setPreference("network.proxy.ssl_port", 8080); profile.setPreference("network.proxy.ftp", "proxy.domain.example.com"); profile.setPreference("network.proxy.ftp_port", 8080); profile.setPreference("network.proxy.socks", "proxy.domain.example.com"); profile.setPreference("network.proxy.socks_port", 8080); WebDriver driver = new FirefoxDriver(profile);
public class sfLogin { static String company="autoPM2CandU"; static String user="athompson"; static String password="pwd"; public static void main(String[] args) { // TODO Auto-generated method stub WindowsUtils.tryToKillByName("firefox.exe"); WindowsUtils.getProgramFilesPath(); WebDriver driver=DriverFactory.getFirefoxDriver(); driver.get("https://qaautocand.successfactors.com/login"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS); WebElement comp=driver.findElement(By.xpath("//*[@id='company']")); Actions actions =new Actions(driver); actions.sendKeys(Keys.F12).perform();//.keyUp(Keys.F12) WebElement username=driver.findElement(By.xpath("//*[@id='username']")); WebElement passwordHints=driver.findElement(By.xpath("//*[@id='passwordHints']")); passwordHints.click(); WebElement pw=driver.findElement(By.xpath("//*[@id='password']")); WebElement login=driver.findElement(By.xpath("//*[@id='loginSubmitBtn']")); comp.sendKeys(company); username.sendKeys(user); passwordHints.click(); pw.sendKeys(password); login.submit(); WebElement home=driver.findElement(By.xpath("//*[@id='8:label']")); actions.moveToElement(home).click().build().perform(); WebElement performance=driver.findElement(By.xpath("//*[@id='10:2']")); performance.click(); WebElement endBox=driver.findElement(By.xpath("//*[@id='tablist']/tbody/tr[2]/td/div/div/div/table/tbody/tr[3]/td[2]/a")); endBox.click(); WebElement auditTrailButton =driver.findElement(By.xpath("//*[@id='form_list_table']/tbody/tr/td[10]/a[2]/img")); auditTrailButton.click(); WebElement action =driver.findElement(By.xpath("//*[@id='contentBodyTable']/tbody/tr[2]/td/div[2]/div/div[2]/div/div/div[2]/div/table/tbody/tr/td/table[2]/tbody/tr[2]/td/table/tbody/tr[4]/td/table/tbody/tr[4]/td[9]")); System.out.println(action.getText()); } }
如果需要載入firebug
File file=new File("d:\\firebug-2.0.4-fx.xpi");//設定Firebug路徑 FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("network.proxy.type", 1); profile.setPreference("network.proxy.http", "proxy.domain.example.com"); profile.setPreference("network.proxy.http_port", 8080); profile.setPreference("network.proxy.ssl", "proxy.domain.example.com"); profile.setPreference("network.proxy.ssl_port", 8080); profile.setPreference("network.proxy.ftp", "proxy.domain.example.com"); profile.setPreference("network.proxy.ftp_port", 8080); profile.setPreference("network.proxy.socks", "proxy.domain.example.com"); profile.setPreference("network.proxy.socks_port", 8080); try { profile.addExtension(file); profile.setPreference("extensions.firebug.currentVersion", "2.0.4");//設定firebug 版本 } catch (IOException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } WebDriver driver = new FirefoxDriver(profile); return driver;
如果需要在執行時候firebug執行
Actions actions =new Actions(driver); actions.sendKeys(Keys.F12).perform();//使用F12調出firebug
擴充套件,為什麼這麼設定
你可以使用about:config 在Firefox裡邊看看