首先这次使用的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里边看看

Selenium FF WebDriver 加载firebug 和设置代理的更多相关文章

  1. Selenium FF WebDriver运行时开启firebug的2种方式

    上一次我实测FF webdriver 加载firefoxhttp://www.cnblogs.com/tobecrazy/p/3997375.html 那么问题就来了,既然能加载firebug能否在运 ...

  2. js不需要知道图片宽高的懒加载方法(经过实际测试,不加宽高仍然是无法正常加载的,设置height:auto,height:100%,仍然显示高度为0)

    js不需要知道图片宽高的懒加载方法 懒加载是如何实现的? - 简书https://www.jianshu.com/p/e86c61468285找到一个不需要知道图片宽高的懒加载方法了(经过实际测试,不 ...

  3. selenium2入门 用selenium安装、加载、启用插件(一)

    一:下载 下载地址是:http://docs.seleniumhq.org/download/

  4. selenium2 用selenium安装、加载、启用插件(一)

    一:下载 下载地址是:http://docs.seleniumhq.org/download/

  5. selenium自动化之加载浏览器的配置文件

    做seleniumUI自动化关于选用哪个浏览器方面,对于我来说,火狐浏览器只是用于定位元素,因为有firebug(注意高版本的火狐已经安装不了这个插件了),而真正执行自动化脚本用的是谷歌,感觉谷歌的速 ...

  6. selenium 等待页面加载完成

    一.隐形加载等待: file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div <html> <head> <tit ...

  7. Selenium WebDriver- 指定页面加载时间

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  8. Selenium 的页面加载以及几种等待的问题

    1. PageLoadStrategy : 当调用driver.get("https://xxxx.xxx.xxx")来访问某页面时,get方法通常会阻塞浏览器直到页面完全加载后才 ...

  9. python3 selenium 超时停止加载,并且捕捉异常, 进行下一步【亲测有效】

    from selenium import webdriver import os import re class GetPage: def __init__(self, url_path): self ...

随机推荐

  1. Node中的定时器详解

    在大多数的业务中,我们都会有一些需求,例如几秒钟实现网页的跳转,几分钟对于后台数据进行清理,node与javascript都具有将代码延迟一段时间的能力.在node中可以使用三种方式实现定时功能:超时 ...

  2. python学习之路 第二天

    1.import 导入模块 #!/usr/bin/python # -*- coding:utf-8 -*- import sys print(sys.argv) 2.字符串常用方法: 移除空白: s ...

  3. iOS开发--OC调用JS篇

    OC调用JS篇 其中相对应的html部分如下: <html> <header> <meta http-equiv="Content-Type" con ...

  4. localStorage使用总结

    一.什么是localStorage.sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题 ...

  5. postgresql 导入sql,out等sql文件

    假设postgresql安装位置 然后,使用dos窗口进入这个位置 导入(本地和默认端口可以不用属性) psql -d 数据库名 -h ip地址 -p 数据库端口 -U 用户名 -f 文件地址 完成

  6. C#-WebForm-纯HTML提交方式

    此方法常用于 纯.html页面向数据库添加数据 在.aspx网页中可以通过传值的方式提交信息,如何在.html网页中提交数据? 提交数据需要在同一个 form 中,用到两个属性:action.meth ...

  7. Python Numpy,Pandas基础笔记

    Numpy Numpy是python的一个库.支持维度数组与矩阵计算并提供大量的数学函数库. arr = np.array([[1.2,1.3,1.4],[1.5,1.6,1.7]])#创建ndarr ...

  8. cocos2d-x内存管理

    Cocos2d-x内存管理 老师让我给班上同学讲讲cocos2d-x的内存管理,时间也不多,于是看了看源码,写了个提纲和大概思想 一.   为什么需要内存管理 1. new和delete 2. 堆上申 ...

  9. iOS 组件化漫谈

    1.准备工作 由于工程越来越大,里面的文件也越来越多.很多时候merge代码的时候工程文件起了冲突之后,若 .xcodeproj文件冲突 打开之后很难以修改. 架构其实相对开发来说还是比较难于下手的东 ...

  10. redis并发问题

    redis中的并发问题 使用redis作为缓存已经很久了,redis是以单进程的形式运行的,命令是一个接着一个执行的,一直以为不会存在并发的问题,直到今天看到相关的资料,才恍然大悟~~ 具体问题实例 ...