自动化测试-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来启动浏览器,这样每个浏览器的属性 ...
随机推荐
- intelli j中如何重启tomcat,或者关掉tomcat?每次点run都提示jmx端口占用
方法1.idea有时候会这样,我一般都是直接打开任务管理器,把java进程给杀掉就好了.
- QS:vue中qs的使用
关于Vue中,序列化字符串,处理发送请求的参数 使用工具qs来处理参数 步骤: 1.首先先下载: npm i qs 2.然后引入 : import qs from 'qs' 3.qs主要有两个方法 : ...
- 【JeeSite】区域和菜单管理
/** * 区域Entity * @author ThinkGem * @version 2013-05-15 */ public class Area extends TreeEntity<A ...
- P1800 software_NOI导刊2010提高(06)
P1800 software_NOI导刊2010提高(06) 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成m个模块,由公司里的技术 ...
- 【洛谷P2184】贪婪大陆
贪婪大陆 题目链接 对于一个区间[l,r],右端点在l左边即[1,l-1]中的区间与区间[l,r]没有交集, 左端点在r右边即[r,n]中的区间与区间[l,r]没有交集, 其余区间必与[l,r]有交集 ...
- 总结的MR中连接操作
1 reduce side join在map端加上标记, 在reduce容器保存,然后作笛卡尔积缺点: 有可能oom 2 map side join 2.1 利用内存和分布式缓存,也有oom风险 2 ...
- Eslint代码规范
- 使用第三方《UITableView+FDTemplateLayoutCell》自动计算UITableViewCell高度(Masonry约束)
直接上代码: 1:先自定义cell .h文件中 #import <UIKit/UIKit.h> #import "LBDNewMsgListModel.h" #impo ...
- 构建高可靠hadoop集群之2-机栈
本文主要参考 http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/RackAwareness.html had ...
- CentOS 手动配置本地yum源(参考CentOS7 制作 CentOS6本地yum源)
将原有/etc/yum.repos.d/目录下的文件名全部改为(*.bak),如(红色标记) [root@localhost ~]# cd /etc/yum.repos.d/ [root@localh ...