自动化测试-selenium启动浏览器
在自动化测试过程中,通过selenium启动浏览器时,可能需要加载插件(如测试用的firebug、或产品中要求必须添加某插件等)、读取用户数据(自己浏览器的配置文件/别人直接给的浏览器配置文件)、设置浏览器(不加载图片等)。
由于我们通过selenium启动的浏览器页面,是完全干净的页面,如果想要让该页面带上我们需要的信息,则需要自己设置。
下面讲一下Firefox和Chrome浏览器的各种启动方式:
一:Firefox
1.启动浏览器,使用浏览器上保存的所有用户数据。
用户数据是从Firefox的配置文件中读取的,首先看下自己电脑的配置文件,在cmd上进入Firefox的安装路径下,运行firefox.exe -ProfileManger命令,会弹出自己电脑火狐浏览器的所有配置文件。如下图。

//创建profileIni对象
ProfilesIni ini = new ProfilesIni();
//通过名字来获取到相应的配置文件,如上图所示,也可以写“profile2”
FirefoxProfile profile = ini.getProfile("default");
//创建浏览器驱动,并将profile传入,此时启动的时候,就会读取我们default配置文件来调用相应的火狐浏览器了
WebDriver driver = new FirefoxDriver(profile); driver.get("https://www.cnblogs.com/");
如果是别人传过来的一个配置文件,你自己保存在了地址XXX下。(即使是读取自己本地浏览器配置文件,也可使用下面的方法,只要将路径写对就可以)
//创建文件对象
File file = new File("C:\\your\\path\\yourProfileName");
FirefoxProfile profile = new FirefoxProfile(file); WebDriver driver = new FirefoxDriver(profile); driver.get("https://www.cnblogs.com/");
2.启动浏览器,设置代理
FirefoxProfile profile = new FirefoxProfile();
String proxyIp="192.168.2.111";
int proxyPort = 6666;
//开启代理模式
profile.setPreference("network.proxy.type", 1);
//设置代理服务器IP
profile.setPreference("network.proxy.http", proxyIp);
//设置代理服务器的端口
profile.setPreference("network.proxy.http_port", proxyPort); WebDriver driver = new FirefoxDriver(profile);
driver.get("http://www.baidu.com");
如果还想了解其他的设置,可以在火狐浏览器搜索就可以了。

3.启动浏览器,安装插件
//设置自己所下载的插件的位置
File file = new File("D:\\your\\xxx.xpi\\path");
//创建火狐浏览器的profile对象
FirefoxProfile profile = new FirefoxProfile(file);
//调用addExtension方法,该方法将file路径中的插件名字提取出来,并将名字和new FileExtension 的对象添加到extensions中
//private Map<String, Extension> extensions = Maps.newHashMap();
profile.addExtension(file); WebDriver driver = new FirefoxDriver(profile);
driver.get("https://www.cnblogs.com/");
二:Chrome
关于Chrome的比较简单,其API上写的都非常清楚。可以自行参考下:https://sites.google.com/a/chromium.org/chromedriver/capabilities。里面的例子都写的很明了。
下面简单举几个例子。
1.添加启动参数(下面是比较常用的字体设置、加载用户数据、模拟手机模式)---addArguments
ChromeOptions options = new ChromeOptions();
//读取用户参数,XX代表当前用户
options.addArguments("--user-data-dir=C:\\Users\\XX\\AppData\\Local\\Google\\Chrome\\User Data"); //设置语言
options.addArguments("--lang=zh_CN.UTF-8");
//模拟手机模式
options.addArguments("--user-agent=iphone 7"); WebDriver driver = new ChromeDriver(options); driver.get("http://www.baidu.com");
关于设置手机模式的,--user-agent对应的值应该怎么填写,在这说明下:
打开浏览器,按F12,手动设置成手机模式,之后:

关于Chrome浏览器启动参数,我们测试中常用的大概还有:
--disable-images(控制是否加载图片)
--start-maximized (启动时最大化)
download.default_directory": download_dir (设置下载保存路径)
2.修改设置----setExperimentalOption
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
//禁止加载图片
prefs.put("profile.default_content_setting_values.images", 2);
options.setExperimentalOption("prefs", prefs); WebDriver driver= new ChromeDriver(options);
driver.get("http://www.baidu.com");
3.安装插件---addExtensions
/*
* 安装插件
*/
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("you/path/XXX")); WebDriver driver = new ChromeDriver(options);
driver.get("http://www.baidu.com");
4.设置代理---DesiredCapabilities
//设置一个空的能力对象
DesiredCapabilities caps = new DesiredCapabilities();
//设置将要代理的IP和端口号
String proxyIpPort="192.168.2.122:8088";
//设置一个空的协议对象
Proxy proxy=new Proxy();
//设置对象支持http、ftp、ssl协议
proxy.setHttpProxy(proxyIpPort).setFtpProxy(proxyIpPort).setSslProxy(proxyIpPort); //设置能力对象,将proxy对象设置为值
caps.setCapability(CapabilityType.PROXY, proxy); WebDriver driver = new ChromeDriver(caps);
driver.get("https://sites.google.com/a/chromium.org/chromedriver/capabilities");
关于Chrome的用户数据,可以到C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\preferences文件中查看。想要设置的,里面都可以查到。
自动化测试-selenium启动浏览器的更多相关文章
- python脚本中selenium启动浏览器报错os.path.basename(self.path), self.start_error_message) selenium.common.excep
在python脚本中,使用selenium启动浏览器报错,原因是未安装浏览器驱动,报错内容如下: # -*- coding:utf-8 -*-from selenium import webdrive ...
- python selenium启动浏览器打开百度搜索
python selenium打开百度搜索 #!usr/bin/python from selenium import webdriver import time browser = webdrive ...
- Python安装selenium启动浏览器
1:在Python运行火狐或谷歌的浏览器是需要下载相对应的驱动 例如:你想在Python中使用代码命令打开firefox的网页 如果没有安装驱动,直接运行的话会出下面的错误 所以我们要安装相对应的浏览 ...
- selenium是如何启动浏览器的
前几天有同学问到selenium是怎么样启动浏览器的(selenium启动浏览器的原理),当时稍微讲解了一下,不过自我感觉不够具体,现在特地把启动原理通过代码和一系列操作给串联起来,希望可以帮助大家更 ...
- Selenium 设置浏览器下载 Firefox 和Chrome
当我们在使用Selenium运行自动化测试时,偶尔需要用到下载功能,但浏览器的下载可能会弹出下载窗口,或者下载路径不是我们想要保存的位置,所以在通过Selenium启动浏览器时需要做相关的设置,将使这 ...
- 使用Python + Selenium打造浏览器爬虫
Selenium 是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操 ...
- Python selenium + Firefox启动浏览器
Python selenium 的运用 from selenium import webdriver # from selenium.webdriver.firefox.firefox_profile ...
- 使用Selenium通过浏览器对网站进行自动化测试和相关问题
使用Selenium通过浏览器对网站进行自动化测试 自动化测试概念: 一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 广义上来讲 ...
- 自动化小应用系列----利用selenium启动多个独立的浏览器
在我们测试的时候对于同一个系统,我们往往需要登陆多个不同的账号,由于cookie的原因,我们只能退出一个账号在登陆另外一颗账号,非常麻烦.我们可以使用selenium来启动浏览器,这样每个浏览器的属性 ...
随机推荐
- putty 启动 linux 下的oracle
没搞过linux ,仅作记录: 1 打开putty.exe 程序 ,选择 连接 2 输入linux 的用户名和密码后,按下图操作: 3 启动监听 4 命令总结: 1. sudo su - orac ...
- c语言描述的静态查找表
顺序表的查找: 直接循环依次和目标比较就行 有序表的查找(二分查找): int search(SS *T,Type key){ int mid; ; int high=T.length; while( ...
- web 切换多语言版本
1.Google 翻译 <div id="google_translate_element"></div> <script type="te ...
- ATK-DataPortal 设计框架(一)
无论是简单的还是复杂的框架,总需要一个开始的原点,ATK-DataPortal中包含了所有基础类的定义. 一.业务框架基础类 1.BusinessBase:所有业务类的根类,要使用ATK库的类,必需继 ...
- <CPP学习>第一天 第一个CPP程序 hello word
由于我是计算机类嵌入式专业的大一学生,之前一直使用的是生万物的C语言,了解了其过程性语言的特性及其基础语法,在大一下学期期末阶段想自学一下C++,其实在开学初就买了一本C++ Primer,但由于各种 ...
- poj_3256_Cow Picnic
The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N (1 ≤ ...
- 增删改查 报异常org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readO
可能是Spring配置文件 事务通知里面的方法 与实际方法不匹配 <tx:advice id="advice" transaction-manager="tran ...
- Spring初始介绍
一.spring介绍 三层架构中spring位置: spring:对象的容器,相当于map容器,已经存好了相应的对象,而这三层对象(web层,service层,)进行创建时,不需要在进行new对象,s ...
- 为什么我用了$().height()还是对不齐呢?
有一个这样的需求:有两个显示内容的框,要使他们高度一致,因为他们存放的内容多少和结构不一样,左边内容少,右边内容多.这就导致了右边会比左边高,解决方法就是超出部分用滚轮显示,那这时就先要调整右边的高度 ...
- virtual box 故障修复
vmware ,virtual box等虚拟化环境为一台系统同时允许运行多台系统成为可能准备了技术支持. 通过软件化的平台虚构出硬件设备的驱动,可谓虚拟化技术应用非常广泛. 在平常的虚拟机启动过程中经 ...