atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
2. 框架选型selenium2(webdriver) QTP 2
1. 常见标准
1.1. 录制重放
这个功能好.不熟悉的时候儿直接能使用...相像help chm雅十..
1.2. 一个窗体一个proxy cookie
webdrive的ff可以。。swt browser,native swing的都是ie默认,改ff可麻烦了。。
1.3. exec js
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
1.4. js 调用java
一般是浏览器扩展,,js调用。。如果不支持,只能使用cookie的方式了。。
1.5. 修改dom属性
通过js或者 后台的dom操作。ie com 可通过后台dom,webdrive,swt browser是通过js
1.6. 关键字驱动
”,测试人员不需要“录制”测试脚本,而可以改成“设计”测试脚本。即:先将应用程序的GUI 对象添加到QTP的对象仓库(Object Repository)中,然后针对每一个需要操作到的对象设计每个测试步骤。我个人感觉,这的确是一个很酷的特性,它使我们可以不必实际去操作应用程 序,就可以编写出测试脚本,这样做既节省了时间,而且还有一个更大的好处就是可以在应用程序还没有设计完成,或者由于出错无法正常执行的时候仍然可以编写 我们的测试脚本。应用程序只需要有使用界面(UI),而不必实际运行,测试人员就可以开始建立测试脚本,为我们实施自动化测试赢得更充足的时间。而
1.7. 加载js类库
原理一般是创建一个script 标签....添加js
1.8. 一个窗口一个代理
1.9. 独立窗口cookie
1.10. 无图模式支持
1.11. 支持自定义路径
2. 框架选型selenium2(webdriver) QTP
3. 操作chrome浏览器
3.1. chromedriver
// 在java程序中添加
System.setProperty("webdriver.chrome.driver", pathx.classPathParent()+ "\\chromedriver.exe");
selenium不能直接操作chrome,要通过这个驱动...
3.2. 自定义路径
ChromeOptions co = new ChromeOptions();
co.setBinary(path);
}
return new ChromeDriver(co);
3.3. 独立窗口代理器
默认gui界面是同ie的设置一样,多个窗口一个proxy。。不过命令行可以。-proxy-server 参数
co.addArguments(“-proxy-server=host:port”);
3.4. 无图模式
命令行参数 --disable-images不过好像不去作用。。只能gui界面禁止。。这样所有的chrome窗口就生效了。
3.5. code
private static WebDriver getChromeDriver(FirefoxProfile profile) {
// 在java程序中添加
System.setProperty("webdriver.chrome.driver", pathx.classPathParent()+ "\\chromedriver.exe");
ChromeOptions co = new ChromeOptions();
String max = "--start-maximized";
String proxyParem = "";
try {
if (browserParams.get().get("network.proxy.http") != null) {
String proxy = browserParams.get().get("network.proxy.http")
+ ":"
+ browserParams.get().get("network.proxy.http_port");
proxyParem = "-proxy-server=" + proxy;
}
} catch (Exception e) {
e.printStackTrace();
}
String noimg = "";
if (browserParams.get().get("permissions.default.image") != null
&& browserParams.get().get("permissions.default.image")
.equals("2"))
noimg = "--disable-images";
//--disable-image-transport-surface
// haox bsin .only gui setting/privert//img
co.addArguments(proxyParem);
String path = pathx.classPathParent()
+ "\\Chrome\\Application\\chrome.exe";
if (new File(path).exists()) {
System.out.println(path);
co.setBinary(path);
}
return new ChromeDriver(co);
}
atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结的更多相关文章
- Chrome浏览器扩展开发系列之三:Google Chrome浏览器扩展的架构
1) 不可视的background页面 Google Chrome扩展往往包含一个不可见的background页面,Google Chrome扩展的主要业务逻辑都位于此.有两种类型的backgroun ...
- Chrome浏览器扩展开发系列之九:Chrome浏览器的chrome.alarms.* API
Chrome浏览器扩展程序通过chrome.alarms.* API,可以制定计划周期性地执行代码,或在指定时间执行代码. 要使用chrome.alarms.* API,首先需要在manifest.j ...
- 用golang chromedp 操作已经打开的chrome浏览器
win7 环境,主要是一开始想在代码中先用exec.Command启动chrome,但始终不能成功监听9222端口,折腾了很长时间, 需要先手工启动chrome监听端口,具体写在代码注释中了. 然后再 ...
- Chrome浏览器及调试教程
==>(微信公众号:IT知更鸟)欢迎关注<^>@<^> Chrome浏览器及调试教程 在web开发过程中,我们在写JavaScript脚本时难免会遇到各种bug,这时,我 ...
- 渗透技巧——导出Chrome浏览器中保存的密码
0x00 前言 在后渗透阶段,获得权限后需要搜集目标系统的信息.信息越全面,越有助于进一步的渗透.对于Windows系统,用户浏览器往往包含有价值的信息. 在之前的文章<本地密码查看工具LaZa ...
- chrome浏览器tab页内存占用变大,网站变慢为哪般?
问题概述: 公司做的是BS应用. 之前我们的后台服务器程序是带状态的,用ehcache存储登录状态:这两天被我改成了redis存储,应用本身不再存储登录状态. 然后自测,我在测试某个很耗时间的网页操作 ...
- 关于Chrome浏览器(Chrome Stable、 Chrome Canary 、Chromium)
作为开发者,web浏览器一般最常用的可能是Chrome浏览器.但其实Chrome浏览器还有别的一些版本.如:Chrome Stable. Chrome Canary .Chromium.大部分人一般用 ...
- 编写一个 Chrome 浏览器扩展程序
浏览器扩展允许我们编写程序来实现对浏览器元素(书签.导航等)以及对网页元素的交互, 甚至从 web 服务器获取数据,以 Chrome 浏览器扩展为例,扩展文件包括: 一个manifest文件(主文件, ...
- Visual Studio 2017 本地调试 Chrome浏览器自动退出
在使用VS 2017(15..6 .15.7)对.NET Core MVC应用程序进行本地调试的时候,选择使用Chrome浏览器.但输入中文 就自动关闭Chrome浏览器,随后结束调试.但复制.粘贴中 ...
随机推荐
- SQL Server 2008数据库备份和还原(还原是必须有完整备份)
转自lwccc, SQLserver2008数据库备份和还原问题(还原是必须有完整备份) 首先,我要说明的是你必须拥有完整的数据库备份,下面的还原教程,才算有用. 这个连接是某高手的异常恢复方法, 实 ...
- 用Hexo搭建属于自己的iOS技术博客,搬家了
搬家了,本来还打算在博客园混一段时间的,可是当我看到Hexo的时候,已经难以抵挡它的诱惑,简单不简约的界面让我花了整整一天的时间,买域名的过程中发生一点小问题导致DNS解析错误了,但还是成功了.欢迎朋 ...
- express结合jade模板渲染HTML
在线html转jade工具>> 注意:以下是在Windwo环境下 运行: npm install jade 然后你的目录node_modules下将增加jade文件夹 app.js var ...
- SQLAlchemy使用笔记--SQLAlchemy ORM(二)
參考: http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html#building-a-relationship http://docs.sqla ...
- ylbtech-LanguageSamples-Versioning(版本控制)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Versioning(版本控制) 1.A,示例(Sample) 返回顶部 “版本控制”示 ...
- 阿里云NAS使用方法
1.创建文件系统 #在创建文件系统页面,填写各项参数.根据项目需求选择存储类型 2.添加挂载点 文件系统实例创建完成后,您需要为文件系统添加挂载点,用于计算节点(ECS 实例.E-HPC 或容器服务) ...
- 流畅的python第四章文本和字节序列学习记录
字符问题 把码位转化成字节序列的过程是编码,把字节序列转化成码位的过程是解码 把unicode字符串当成人类可读的文本,码位当成机器可读的, 将字节序列编程人类可读是解码,把字符串编码成字节序列是编码 ...
- decal in unity
// Upgrade NOTE: commented out 'float4x4 _CameraToWorld', a built-in variable// Upgrade NOTE: replac ...
- Eclipse代码布局怎么使用退格和缩进快捷键?
Eclipse代码布局怎么使用退格和缩进快捷键? 好的程序,不仅要运行快速准确,而且还要易于理解.研究表明,清晰的代码布局可以提高程序猿的理解能力.何为代码布局?其实就是代码的缩进.留白等.为了保证清 ...
- 784 - Maze Exploration
#include <stdio.h> #include <string.h> char maze[50][100]; void search(int i,int j) { if ...