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

然后才知道现在竟然有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. HDU 5882 Balanced Game (水题)

    题意:问 nnn 个手势的石头剪刀布游戏是否能保证出每种手势胜率都一样. 析:当每种手势的攻防个数完全相等才能保证平衡,所以容易得出 nnn 是奇数时游戏平衡,否则不平衡. 也就是说打败 i 的和 i ...

  2. 两分钟彻底让你明白Android Activity生命周期(图文)!(转载)

    转自:http://kb.cnblogs.com/page/70125/ 大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样 ...

  3. android内存溢出 java.lang.OutOfMemoryError

    今天在做ListView 的时候.想做一个音乐列表模块,前面是图片,后面是分类名称,如下图: 结果运行时候,LogCat是总是报 java.lang.OutOfMemoryError的错误,顾名思义, ...

  4. Django Views and URLconfs

    碧玉妆成一树高,万条垂下绿丝绦. 不知细叶谁裁出,二月春风似剪刀. 原文尽在:http://djangobook.com/ 转载请注明出处:http://www.cnblogs.com/A-FM/p/ ...

  5. ssm框架下实现文件上传

      1.由于ssm框架是使用Maven进行管理的,文件上传所需要的jar包利用pom.xml进行添加,如下所示: <properties> <commons-fileupload.v ...

  6. 金蝶Apusic中间件适配JetSpeed2过程记录

    金蝶Apusic中间件适配JetSpeed2过程记录: 1.安装金蝶并配置域,确保域运行正常. 2.参考<JetSpeed2部署至Apusic操作步骤记录>进行应用迁移. https:// ...

  7. Include,Forward,sendRedirct的区别(转)

    三者在servlet中的最大区别是: Include和Forward:将当前请求转到另外一个JSP或者servlet处理. sendRedirct:将当前请求返回到浏览器,带上要redirect的UR ...

  8. (023) 关于51单片机的A5指令

    可看见一篇讲51单片机加密的文章这么讲: [加密方法:在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序.] ...

  9. 浅析cookie

    基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性:  1.Name:cookie的名称: 2. ...

  10. webfrom ASP开发基础跟模式

    ASP.NET - .net开发网站应用程序的技术总称 ASP WebForm           MVC   是ASP.NET的两个技术方法 WebForm类似于WinForm,可视化操作 MVC类 ...