c/s端测试——nw.js篇(selenium工具)
最近在为兄弟部门开发自动化测试工具。
然后才知道现在竟然有JS工具可以把JS打包成cs端程序了,太牛了,js发展是真快。并且还是跨平台的,mac、windows、linux都支持。
当然,今天不是说nw.js是怎样去打包EXE程序,今天是来说怎么去对这样的nw.js打包的C/S程序进行自动化测试。
百度了很久,没找到对应的资料,还是打开vps谷歌了一把,以下基本都是官网的内容
一、工具ChromeDriver
ChromeDriver , 一款开源工具 , 提供跨浏览器自动测试页面应用 . 提供引导页面 , 用户输入 , 脚本执行等功能 . 实现Chromium协议的独立服务 . 安卓系统以及PC系统(Mac, Linux, Windows, ChromeOS)的Chorme浏览器中可以运行
NW.js提供自定义ChromeDriver完成自动测试基于NW.js开发的应用 , 可以通过类似于selenium工具进行使用
二、安装
1.从官网下载SDK构建方式的NW.js , 其中包含ChromeDriver工具 .
解压下载的文件,chromedriver在解压的NW.js目录中
Linux系统中名为nw
Windows系统中名为nw.exe
Mac系统中名为node-webkit.app
将开发的dist文件替换到sdk中,若有相应的配置文件同样放在其根目录下
然后打开nw.exe,点击主页面,右键点击,可选择“检查”、F12,效果与打开浏览器一致,如下:


2.安装selenium-python到python环境中 :
pip install selenium
三、运行
假设你的应用远程查询内容 . 页面代码大致如下:
<form action="http://mysearch.com/search" method="GET">
<input type="text" name="q"><input type="submit" value="Submit">
</form>
编写一个python脚本自动填充搜索框并提交表单:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
path = 'D:\\项目\\测试平台\\nw\\nw_sdk\\'
chrome_options.add_argument("nwapp="+path)
driver = webdriver.Chrome(executable_path=path+'chromedriver', chrome_options=chrome_options)
time.sleep(5) # 等待5秒 , 查看页面
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # 等待5秒 , 查看搜索结果
driver.quit()
参考http://selenium-python.readthedocs.org/详细文档 .
四、修改参数
被修改的chromedriver工具默认在NW可执行相同目录下 .
如果需要传递参数给命令行 , 需要使用选项nwargs:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("nwapp=/path/to/your/app")
chrome_options.add_experimental_option("nwargs", ["arg1", "arg2"])
driver = webdriver.Chrome(executable_path='/path/to/nwjs/chromedriver', chrome_options=chrome_options)
四、最后
忘记放官网链接了
https://nwjs-cn.readthedocs.io/zh_CN/latest/Base/Advanced/Test%20with%20ChromeDriver/index.html#_1
c/s端测试——nw.js篇(selenium工具)的更多相关文章
- 移动端测试接口--Fiddler抓包工具
Fiddler抓包工具是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视.设置断 ...
- nw.js的localStorage的物理储存位置
前言 因为在做美团外卖商家端的nw.js壳子项目,需要保证在壳子里面使用localStorage的数据可以持久化保存. 发现nw可以保存,即使删除应用重写打包也可以保存,所以解决了这个需求,但是还是需 ...
- 最受欢迎的5款Node.js端到端测试框架
测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...
- 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)
1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...
- 使用node.js & live server在移动端测试网站
1.安装node.js 下载Node.js官网 cmd下确认node已安装 node -v ※进入node环境 2.确认npm已安装(Node.js的包管理工具(package manager)) n ...
- selenium 移动端测试
selenium 可以进行移动测试的.Anroid ,IOS .进行移动端测试,需要相应的SDK ,apk.其中anriod 是selenium 支持有2中选择,remote server 和 tes ...
- NW.js构建PC收银端安装程序的指南
1.首先下载nw.js的SDK: https://nwjs.org.cn/download.html 2.SDK目录下新建myapp文件夹: 3.myapp文件夹内新建package.json文件: ...
- JavaScript(Node.js)+ Selenium自动化测试
Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...
- Cypress与TestCafe WebUI端到端测试框架简介
近期接触了Cypress和TestCafe,两个测试框架都基于Node.js,都不再使用Selenium+WebDriver,而且开箱即用,非常轻量级,就冲着不再使用WebDriver这一点,极大地勾 ...
随机推荐
- HDU 5901 Count primes (模板题)
题意:给求 1 - n 区间内的素数个数,n <= 1e11. 析:模板题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024 ...
- html5盒子模型
相关博客: Flex 布局教程:语法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex 布局教程:实例篇:http://ww ...
- 模板 - 字符串 - Manacher
求最长回文子串. #include<bits/stdc++.h> using namespace std; #define ll long long ; ]; ]; int Manache ...
- Ubuntu还是windows呢
本来想把才换不久的电脑也换成Ubuntu,犹豫再三,还是把这个老电脑作为Ubuntu的主力机把,毕竟大屏幕看着也得劲 新电脑还是win10吧,毕竟现在速度还是刷刷的,等过几年速度降下来了,就换成Ubu ...
- ipset 学习总结
用途:当机器受到网络攻击时,使用 iptables 封 IP,有时候可能会封禁成千上万个 IP,如果添加成千上万条规则, 在一台注重性能的服务器或者本身性能就很差的设备上就不在适用了.ipset 就是 ...
- 【Python】Python3.4+Matplotlib详细安装教程
网上找了很多教程,这个还不错. 传送门:https://blog.csdn.net/xqf1528399071/article/details/52233895
- 题解报告:poj 2480 Longge's problem(欧拉函数)
Description Longge is good at mathematics and he likes to think about hard mathematical problems whi ...
- 136 Single Number 数组中除一个数外其他数都出现两次,找出只出现一次的数
给定一个整数数组,除了某个元素外其余元素均出现两次.请找出这个只出现一次的元素.备注:你的算法应该是一个线性时间复杂度. 你可以不用额外空间来实现它吗? 详见:https://leetcode.com ...
- Mysql选择合适的存储引擎
Myisam:默认的mysql插件式存储引擎.如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,那么选择这个存储引擎是非常合适的.Myisam是在we ...
- android开发学习 ------- MongoDB数据库简单理解
首先说一下MongoDB是什么? MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB 是一个基于分布式文件存储的数据库. N ...