最近在为兄弟部门开发自动化测试工具。

然后才知道现在竟然有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工具)的更多相关文章

  1. 移动端测试接口--Fiddler抓包工具

    Fiddler抓包工具是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视.设置断 ...

  2. nw.js的localStorage的物理储存位置

    前言 因为在做美团外卖商家端的nw.js壳子项目,需要保证在壳子里面使用localStorage的数据可以持久化保存. 发现nw可以保存,即使删除应用重写打包也可以保存,所以解决了这个需求,但是还是需 ...

  3. 最受欢迎的5款Node.js端到端测试框架

    测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试. ...

  4. 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)

    1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...

  5. 使用node.js & live server在移动端测试网站

    1.安装node.js 下载Node.js官网 cmd下确认node已安装 node -v ※进入node环境 2.确认npm已安装(Node.js的包管理工具(package manager)) n ...

  6. selenium 移动端测试

    selenium 可以进行移动测试的.Anroid ,IOS .进行移动端测试,需要相应的SDK ,apk.其中anriod 是selenium 支持有2中选择,remote server 和 tes ...

  7. NW.js构建PC收银端安装程序的指南

    1.首先下载nw.js的SDK: https://nwjs.org.cn/download.html 2.SDK目录下新建myapp文件夹: 3.myapp文件夹内新建package.json文件: ...

  8. JavaScript(Node.js)+ Selenium自动化测试

    Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...

  9. Cypress与TestCafe WebUI端到端测试框架简介

    近期接触了Cypress和TestCafe,两个测试框架都基于Node.js,都不再使用Selenium+WebDriver,而且开箱即用,非常轻量级,就冲着不再使用WebDriver这一点,极大地勾 ...

随机推荐

  1. IOS高级开发~Runtime(二)

    #import <Foundation/Foundation.h> @interface CustomClass : NSObject { NSString *varTest1; NSSt ...

  2. Codeforces34C【尺取】

    题意: 输入一系列的数,连续数字则输出连续区间 看第一个案例就很明显 思路: 输入字符串输入,预处理一下. 写了个挫尺取- 贴一发挫code--. #include <bits/stdc++.h ...

  3. 洛谷P2569 [SCOI2010]股票交易(单调队列)

    传送门 惭愧……这种题目都没看出来…… 首先,我们用$dp[i][j]$表示在第$i$天,手上有$j$股时的最大收益 第一,我们可以直接买股票,即$dp[i][j]=-j*AP_i$,这个直接计算即可 ...

  4. 解决wubi安装ubuntu时要下载系统映像文件问题

    转载:一个人的旅行的博客(http://www.cnblogs.com/rollenholt/articles/2607433.html) 下面我介绍解决wubi安装ubuntu时要去官网下载系统映像 ...

  5. 严格次小生成树(lca + 倍增)

    题目描述 小C最近学了很多最小生成树的算法,Prim算法.Kurskal算法.消圈算法等等.正当小C洋洋得意之时,小P又来泼小C冷水了.小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得 ...

  6. jQuery笔记之遍历索引(补充)

    遍历索引的相关方法: .each() .补充.children() .index() --------------------------------------------------------- ...

  7. python之请求报文对比(假定最多二维字典)

    两段请求报文,判断不一样的key和value,只判断d2里和d1不同的值,和全部不同的key ok_req={ "version": "9.0.0", &quo ...

  8. April Fools Contest 2017 A

    Description Input The input contains a single integer a (1 ≤ a ≤ 30). Output Output a single integer ...

  9. Maven聚合模式

    项目的打包类型:pom.jar.war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系.项目模块化可以将通用的部分抽离出来,方便重 ...

  10. iOS UILabel UITextView自适应文本,或文本大小自适应

    //UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; label.numberOf ...