Ai-Bot 之WindowsBot方法介绍

时间:2024-03-05 22:49:39
1.创建/关闭WindowsBot
(1)主函数示例
const windowsBot = require(\'WindowsBot\');//引用WindowsBot模块
async function mian()
{
let windowsBotPort = 9999;
let proxyServer = "127.0.0.1:888";
//初始化WindowsBot
let driver = await windowsBot.InitWindowsBot(windowsBotPort, proxyServer = null);
}
mian();
//主函数,初始化WindowsBot服务
//windowsBotPort 整型,WindowsBot服务端口,多开进程,端口不可重复
//proxyServer 字符串,可选参数。设置WebBot内置浏览器代理ip
(2)关闭WindowsBot
await driver.CloseWindowsBot();
//关闭WindowsBot服务
2.等待超时
await driver.Sleep(3000);
//显示等待
//参数一 整型,等待时间,单位毫秒
await driver.SetImplicitTimeout(waitMS, intervalMS = 10);
//隐式等待
//参数一 整型,等待时间,单位毫秒
//参数二 整型,心跳间隔,单位毫秒。可选参数,默认10毫秒
3.操作模式
await driver.SetCurMode(true);
//参数一 布尔类型,true前台,false后台,WindowsBot默认前台操作
4.查找窗口句柄
await driver.FindWindowHandle("className", "windowName");
//查找窗口句柄
//参数一 字符串型,窗口类名
//参数二 字符串型,窗口标题
//成功返回句柄,失败返回null
await driver.FindWindowsHandle("className", "windowName");
//查找窗口句柄数组
//参数一 字符串型,窗口类名
//参数二 字符串型,窗口标题
//成功返回句柄数组,失败返回null
await driver.FindSubWindowHandle("hwndParent", "className", "windowName");
//查找子窗口句柄
//参数一 整型,父窗口句柄
//参数二 字符串型,窗口类名
//参数三 字符串型,窗口标题
//成功返回句柄,失败返回null
await driver.FindWebBotHandle();
//查找WebBot内置浏览器句柄
//成功返回句柄,失败返回null
5.鼠标操作
await driver.MoveMouse(hwnd, x, y);
//移动鼠标
//参数一 整型,窗口句柄
//参数二 整型,x坐标
//参数三 整型,y坐标
await driver.RollMouse(hwnd, x, y, dwData);
//滚动鼠标
//参数一 整型,窗口句柄
//参数二 整型,x坐标
//参数三 整型,y坐标
//参数四 整型,鼠标滚动次数,负数下滚鼠标,正数上滚鼠标
await driver.ClickMouse(hwnd, x, y, msg);
//点击鼠标,后台模式下,控件独句柄与hwnd不一致时会失败
//参数一 整型,窗口句柄
//参数二 整型,x坐标
//参数三 整型,y坐标
//参数四,单击左键:1 单击右键:2 按下左键:3 弹起左键:4 按下右键:5 弹起右键:6 双击左键:7 双击右键:8
6.键盘操作
await driver.InputText(hwnd, text);
//输入文本,杀毒软件可能会拦截
//参数一 整型,窗口句柄
//参数二 字符串型,输入内容
await driver.InputKeyborad(bVk, msg);
//输入键盘VK值
//参数一 整型,VK键值
//参数二 整型,按下弹起:1 按下:2 弹起:3
7.截图保存
await driver.SaveScreenshot(hwnd, imagePath, x = 0, y =0, width = 0, height = 0);
//后台截图保存
//参数一 整型,窗口句柄
//参数二 字符串型,图片保存的路径,png格式
//参数三 整型,可选参数,顶点x坐标
//参数四 整型,可选参数,顶点y坐标
//参数五 整型,可选参数,图片宽度
//参数六 整型,可选参数,图片高度
//成功返回true,失败返回false
await driver.FrontSaveScreenshot(imagePath, x = 0, y =0, width = 0, height = 0);
//前台截图保存,当SaveScreenshot截图失效时,可用此函数
//参数一 字符串型,图片保存的路径,png格式
//参数二 整型,可选参数,顶点x坐标
//参数三 整型,可选参数,顶点y坐标
//参数四 整型,可选参数,图片宽度
//参数五 整型,可选参数,图片高度
//成功返回true,失败返回false
8.图色定位
await driver.FindColorCount(imagePath, R, G, B);
//查找图片颜色点的数量和坐标
//参数一 字符串型,图片的路径
//参数二 整型,红
//参数三 整型,绿
//参数四 整型,蓝
//返回指定rgb点的数量和坐标
await driver.FindColor(hwnd, imagePath, R, G, B, index = 0);
//查找指定色值在图片上的位置
//参数一 整型,窗口句柄
//参数二 字符串型,图片的路径
//参数三 整型,红
//参数四 整型,绿
//参数五 整型,蓝
//参数六 整型,可选参数,指定出现的次数,默认第一次查找到的坐标
//成功返回指定rgb点的坐标,失败返回 {x:-1, y:-1}
await driver.FindImage(hwnd, sourceImagePath, destImagePath, sim);
//查找图片,大图找小图
//参数一 整型,窗口句柄
//参数二 字符串型,大图路径
//参数三 字符串型,小图路径
//参数四 浮点型,相似度0.0-1.0
//成功返回指定rgb点的坐标,失败返回 {x:-1, y:-1}
9.系统剪切板
await driver.SetClipboardText(text);
//设置剪切板文本
//参数一 字符串型,设置的文本
await driver.GetClipboardText();
//获取剪切板文本
//返回剪切板文本
10.启动程序
await driver.StartProcess(commandLine, showWindow = true, isWait = false);
//启动指定程序
//参数一 字符串型,启动命令行
//参数二 布尔型,是否显示窗口。可选参数,默认显示窗口
//参数三 布尔型,是否等待程序结束。可选参数,默认不等待
//成功返回true,失败返回false
11.下载文件
await driver.DownloadFile(url, filePath, isWait);
//启动指定程序
//参数一 字符串型,文件地址
//参数二 字符串型,文件保存的路径
//参数三 布尔型,是否等待.为true时,等待下载完成
12.ocr系统
await driver.InitOcr(appId, apiKey, secretKey);
//初始化百度ocr
//参数一 字符串型,百度ocr提供
//参数二 字符串型,百度ocr提供
//参数三 字符串型,百度ocr提供
await driver.GetImageWords(imagePath, ocrType);
//百度ocr获取图片上的文字
//参数一 字符串型,图片路径
//参数二 整型,识别类型,通用文字识别:1 高精度版:2 网络图片文字识别:3 数字识别:4 手写文字识
别:5 二维码识别:6
//成功返回获取的文字
await driver.FindImageWords(hwnd, imagePath, words, index = 0);
//百度ocr获取图片文字坐标
//参数一 整型,图片所属窗口的句柄,手机图片识别一般为null
//参数二 字符串型,图片路径
//参数三 字符串型,识别的文字
//参数四 整型,可选参数。文字出现的次数,默认为0,查找第一次出现的坐标
//成功返回文字坐标,失败返回{x:-1, y:-1}
13.验证码识别系统
await driver.InitCheckCode(userName, passWord);
//初始化验证码系统
//参数一 字符串型,用户名,第三方平台提供
//参数二 字符串型,用户密码,第三方平台提供
await driver.GetCheckCode(imagePath, codeType);
//获取验证码
//参数一 字符串型,验证码图片路径
//参数二 字符串型,验证码类型,参考第三方平台
//成功返回验证码,失败返回错误信息
await driver.SendErrorCode();
//发送验证码识出错
//成功返回"true",失败返回错误信息
14.窗口元素操作
注意:窗口元素操作未默认释放,必须手动释放,否则内存泄漏!
(1)查找元素
await driver.FindRootElement(hwnd);
//查找窗口根元素
//参数一 整型,窗口句柄
//成功返回元素对象,失败返回null
await driver.FindFocusElement();
//查找焦点元素
//成功返回元素对象,失败返回null
await driver.FindElementByAutomationId(rootElement, automationId);
//通过automationId查找元素
//参数一 对象,根元素
//参数二 字符串,要查找元素的automationId值
//成功返回元素对象,失败返回null
await driver.FindElementsByAutomationId(rootElement, automationId);
//通过automationId查找元素数组
//参数一 对象,根元素
//参数二 字符串,要查找元素的automationId值
//成功返回元素对象数组,失败返回null
await driver.FindElementByName(rootElement, name);
//通过name查找元素
//参数一 对象,根元素
//参数二 字符串,要查找元素的name值
//成功返回元素对象,失败返回null
await driver.FindElementsByName(rootElement, name);
//通过name查找元素数组
//参数一 对象,根元素
//参数二 字符串,要查找元素的name值
//成功返回元素对象数组,失败返回null
await driver.FindElementByClassName(rootElement, className);
//通过className查找元素
//参数一 对象,根元素
//参数二 字符串,要查找元素的className值
//成功返回元素对象,失败返回null
await driver.FindElementsByClassName(rootElement, className);
//通过className查找元素数组
//参数一 对象,根元素
//参数二 字符串,要查找元素的className值
//成功返回元素对象数组,失败返回null
await driver.FindElementByControlType(rootElement, controlType);
//通过controlType查找元素
//参数一 对象,根元素
//参数二 字符串,要查找元素的controlType值
//成功返回元素对象,失败返回null
await driver.FindElementsByControlType(rootElement, controlType);
//通过controlType查找元素数组
//参数一 对象,根元素
//参数二 字符串,要查找元素的controlType值
//成功返回元素对象数组,失败返回null
await driver.FindElementByXpath(rootElement, xpath);
//通过xpath查找元素
//参数一 对象,根元素
//参数二 字符串,要查找元素的xpath值
//成功返回元素对象,失败返回null
await driver.FindParentElement(currentElement, isRelease = true);
//查找父元素
//参数一 对象,当前元素
//参数二 布尔型,可选参数。是否释放当前元素
//currentElement不再使用时必须释放,否则内存泄漏.默认为true释放当前元素
//成功返回元素对象,失败返回null
await driver.FindNextSiblingElement(currentElement, isRelease = true);
//查找下一个兄弟元素
//参数一 对象,当前元素
//参数二 布尔型,可选参数。是否释放当前元素
//currentElement不再使用时必须释放,否则内存泄漏.默认为true释放当前元素
//成功返回元素对象,失败返回null
await driver.FindPreviousSiblingElement(currentElement, isRelease = true);
//查找上一个兄弟元素
//参数一 对象,当前元素
//参数二 布尔型,可选参数。是否释放当前元素
//currentElement不再使用时必须释放,否则内存泄漏.默认为true释放当前元素
//成功返回元素对象,失败返回null
await driver.FindFirstChildElement(currentElement, isRelease = true);
//查找第一个子元素
//参数一 对象,当前元素
//参数二 布尔型,可选参数。是否释放当前元素
//currentElement不再使用时必须释放,否则内存泄漏.默认为true释放当前元素
//成功返回元素对象,失败返回null
await driver.FindLastChildElement(currentElement, isRelease = true);
//查找最后一个子元素
//参数一 对象,当前元素
//参数二 布尔型,可选参数。是否释放当前元素
//currentElement不再使用时必须释放,否则内存泄漏.默认为true释放当前元素
//成功返回元素对象,失败返回null
(2)元素方法
await driver.GetElementName(element, isRelease = true);
//获取指定元素name属性值
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回元素name属性值
await driver.GetElementBoundingRectangle(element, isRelease = true);
//获取指定元素矩形大小
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回元素矩形大小,失败返回{left:-1, top:-1, right:-1, bottom:-1}
await driver.GetElementValueValue(element, isRelease = true);
//获取指定元素ValueValue属性值
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回元素ValueValue属性值
await driver.GetControlType(element, isRelease = true);
//获取指定元素ControlType属性值
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回元素ControlType属性值
await driver.SetElementValue(element, value, isRelease = true);
//设置指定元素value
//参数一 对象,指定元素
//参数二 字符串型,设置的值
//参数三 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false
await driver.SetElementValueEx(element, value, isRelease = true);
//通过元素窗口句柄设置指定元素value
//参数一 对象,指定元素
//参数二 字符串型,设置的值
//参数三 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false.
await driver.InvokeElement(element, isRelease = true);
//执行元素默认操作,一般用作点击
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false
await driver.SetElementFocus(element, isRelease = true);
//设置指定元素作为焦点
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false
await driver.SetElementScroll(element, horizontalPercent, verticalPercent, isRelease = true);
//设置指定元素滚动条
//参数一 对象,指定元素
//参数二 浮点型,水平百分比0.0-1.0,为-1时不滚动
//参数三 浮点型,垂直百分比0.0-1.0,为-1时不滚动
//参数四 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false
await driver.ClickElement(element, msg, isRelease = true);
//通过元素窗口句柄点击控件
//参数一 对象,指定元素
//参数二 整型,单击左键:1 单击右键:2 按下左键:3 弹起左键:4 按下右键:5 弹起右键:6 双击左键:7
双击右键:8
//参数三 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false.后台模式无法点击非客户端区域
await driver.CloseWindow(element, isRelease = true);
//关闭指定元素窗口
//参数一 对象,指定元素
//参数二 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false.
await driver.SetWindowState(element, state, isRelease = true);
//设置指定元素窗口状态
//参数一 对象,指定元素
//参数二 整型,正常:0 最大化:1 最小化:2
//参数三 布尔型,可选参数。element不再使用时必须释放,否则内存泄漏.默认为true释放
//成功返回true,失败返回false.
await driver.ReleaseElement(element);
//手动释放指定元素,windows元素操作必须要释放元素,否则内存泄漏
//参数一 对象,指定元素
//成功返回true,失败返回false.
await driver.ReleaseElements(elements);
//手动释放指定元素数组,元素数组不再使用时,必须调用此函数手动释放,否则大量内存泄漏
//参数一 对象,指定元素数组
15.内置浏览器(WebBot)
(1)WebBot操作
await driver.openWebBot(url);
//打开内置浏览器WebBot
//参数一 字符串型,指定网址
await driver.switchPage(index);
//切换WebBot页面
//参数一 整型,索引号,0为起首页
await driver.closePage(index);
//关闭WebBot页面
//参数一 整型,索引号,0为起首页
(2)获取元素
await driver.getElementById(id, iframe = null);
//通过id获取元素
//参数一 字符串型,元素id值
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象,失败返回null
await driver.getElementsByClassName(classNames, iframe = null);
//通过class获取元素数组
//参数一 字符串型,元素class值
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象数组,失败返回null
await driver.getElementsByName(elementName, iframe = null);
//通过name获取元素数组
//参数一 字符串型,元素name值
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象数组,失败返回null
await driver.getElementsByTagName(localName, iframe = null);
//通过tagName获取元素数组
//参数一 字符串型,元素tagName值
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象数组,失败返回null
await driver.getElementByXpath(xpath, iframe = null);
//通过xpath获取元素
//参数一 字符串型,元素xpath路径
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象,失败返回null
await driver.querySelector(selector, iframe = null);
//通过ccs selector获取元素
//参数一 字符串型,元素selector路径
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象,失败返回null
await driver.querySelectorAll(selectors, iframe = null);
//通过ccs selector获取元素数组
//参数一 字符串型,元素selector路径
//参数二 对象,可选参数,元素所属的iframe
//成功返回元素对象数组,失败返回null
(3)元素方法
await driver.clickElement(element);
//点击元素
//参数一 对象,要点击的元素
await driver.clickElementEx(element, iframe);
//点击元素(windows api方式点击)
//参数一 对象,要点击的元素。 参数二 对象,可选参数,元素所属的iframe
await driver.setValue(element, value);
//设置元素value
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
await driver.getValue(element);
//获取元素value
//参数一 对象,指定的元素
//成功返回value值
await driver.setTextConten(element, value);
//设置元素textConten
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
await driver.getTextConten(element);
//获取元素textConten
//参数一 对象,指定的元素
//成功返回textConten值
await driver.setOuterText(element, value);
//设置元素outerText
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
await driver.getOuterText(element);
//获取元素outerText
//参数一 对象,指定的元素
//成功返回outerText值
await driver.setOuterHTML(element, value);
//设置元素setOuterHTML
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
await driver.getOuterHTML(element);
//获取元素outerText
//参数一 对象,指定的元素
//成功返回outerHTML值
await driver.setInnerText(element, value);
//设置元素setInnerText
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
await driver.getInnerText(element);
//获取元素innerHTML
//参数一 对象,指定的元素
//成功返回innerHTML值
await driver.setAttribute(element, value, name);
//设置元素属性
//参数一 对象,设置的元素
//参数二 字符串型,设置的值
//参数三 字符串型,属性名称
await driver.getAttribute(element, name);
//获取元素属性值
//参数一 对象,指定的元素
//参数二 字符串型,属性名称
//成功返回name对应的属性值
await driver.setSelect(element, checkValue);
//选择下拉框值
//参数一 对象,指定的元素
//参数二 字符串型,选中的值
//成功返回name对应的属性值
await driver.getBoundingClientRect(element);
//获取元素矩形大小
//参数一 对象,指定的元素
//成功返矩形大小,失败返回null
(4)注入JavaScript
await driver.executeScript(scriptCode);
//注入JavaScript代码在v8执行
//参数一 字符串型,JavaScript代码
(5)node与V8数据共享
await driver.nodePipeScript(shareData = \'null\');
//WebBot V8有同名称扩展函数,可在executeScript调用。shareData更新需要10-100毫秒
//参数一 字符串型,设置共享数据值,可选参数。
//返回node/v8 设置的shareData值。
(6)Cookie操作
await driver.ExportCookie(filePath, url);
//导出指定url的cookie
//参数一 字符串型,cookie文件路径
//参数二 字符串型,url 格式:http://www.ai-bot.net
//成功返回true,失败返回false
await driver.ImportCookie(filePath, url);
//导入cookie到指定url网页
//参数一 字符串型,cookie文件路径
//参数二 字符串型,url 格式:http://www.ai-bot.net
//成功返回true,失败返回false
await driver.ClearCookie(filePath, url);
//清除指定url网页内的cookie, 不会删除本地cookie文件
//参数一 字符串型,cookie文件路径
//参数二 字符串型,url 格式:http://www.ai-bot.net
//成功返回true,失败返回false
16.Word文档
await driver.wordCreate(options = {type: \'docx\'});
/创建Wrod文档
//参数一 对象,Word文档格式,可选参数,options列表:
* type(字符串)\'docx\' 必要参数值
* author(字符串)-文档的作者
* creator(字符串)-别名。文档的作者
* description\'(字符串)-文档的属性注释
* keywords(字符串)-文档的关键字
* orientation(字符串)-横向\'landscape\'或纵向\'portrait\'。默认值为\'portrait\'
* pageMargins(对象)-设置文档页边距。默认值为{top: 1800, right: 1440, bottom: 1800,
left: 1440}
* pageSize(字符串|对象)-设置文档页面大小。默认值为A4(支持值:\'A4\', \'A3\', \'letter
paper\')。或使用{width: 11906, height: 16838}设置自定义尺寸
* subject (字符串)-文档的主题
* title(字符串)-文档的标题
* columns(整型)-每页中的列数。默认值为1列。
//返回word对象
await driver.wordAddPage(docxObject);
//添加word分页
//参数一 对象,word对象
await driver.wordCreateTable(docxObject, table, tableStyle);
//创建word表格
//参数一 对象,word对象
//参数二 对象,表格
//参数三 对象,表格样式
await driver.wordAddHeader(docxObject, text, options = \'\');
//添加页眉
//参数一 对象,word对象
//参数二 字符串,要添加的文本
//参数三 字符串,可选参数,要更改的页面 \'even\'更改偶数页。\'first\'仅更改首页
await driver.wordAddFooter(docxObject, text, options = \'\');
//添加页脚
//参数一 对象,word对象
//参数二 字符串,要添加的文本
//参数三 字符串,可选参数,要更改的页面 \'even\'更改偶数页。\'first\'仅更改首页
await driver.wordCreateParagraph(docxObject, options = {align: \'left\'});
//创建段落
//参数一 对象,word对象
//参数二 对象, 可选参数,段落格式,options列表:
* align(字符串)-水平对齐,可以是\'left\'(默认),\'right\',\'center\'或\'justify\'
* textAlignment(字符串)-垂直对齐方式,\'center\', \'top\', \'bottom\'或\'baseline\'
* indentLeft(数字)- 向左缩进
* indentFirstLine(数字)- 缩进第一行
* backline(字符串)-颜色代码,例如:\'ffffff\'(白色)或\'000000\'黑色)
//成功返回段落对象
await driver.wordCreateListOfDots(docxObject, options = {align: \'left\'});
//创建无作序号的段落
//参数一 对象,word对象
//参数二 对象, 可选参数,段落格式,options列表:参考wordCreateParagraph
//成功返回段落对象
await driver.wordCreateListOfNumbers(docxObject, options = {align: \'left\'});
//创建有序号数字的段落
//参数一 对象,word对象
//参数二 对象, 可选参数,段落格式,options列表:参考wordCreateParagraph
//成功返回段落对象
await driver.wordCreateNestedUnOrderedList(docxObject, options = {"level":2});
//创建有等级的无序号段落
//参数一 对象,word对象
//参数二 对象, 可选参数,段落格式,options列表:参考wordCreateParagraph
//成功返回段落对象
await driver.wordCreateNestedOrderedList(docxObject, options = {"level":2});
//创建有等级的序号段落
//参数一 对象,word对象
//参数二 对象, 可选参数,段落格式,options列表:参考wordCreateParagraph
//成功返回段落对象
await driver.wordAddText(paragraphObject, text, sytle = {});
//将文本添加到段落
//参数一 对象,段落对象对象
//参数二 字符串, 要添加的文本
//参数三 对象,可选参数,文本样式,sytle列表:
* back(字符串)-背景颜色代码,例如:\'ffffff\'(白色)或\'000000\'黑色)
* shdType(字符串)-要使用的可选模式代码:\'clear\'(无模
式),\'pct10\',\'pct12\',\'pct15\',\'diagCross\',\'diagStripe\',\'horzCross\',\'horzStripe\',\'
nil\' ,\'thinDiagCross\',\'solid\'等
* shdColor(字符串)-模式的前部颜色(与shdType一起使用)
* bold(布尔)-为true时文本变为粗体
* border(字符串)-边框类
型:\'single\',\'dashDotStroked\',\'dashed\',\'dashSmallGap\',\'dotDash\',\'dotDotDash\',\'dott
ed\',\'double\',\'thick\'
* color(字符串)-字体颜色代码,例如:“ ffffff”(白色)或“ 000000”(黑色)
* italic(布尔值)-设置为斜体时为true
* underline(布尔值)-为true表示要添加下划线
* font_face(字符串)-要使用的字体,例如:\'Arial\'
* font_face_east(字符串)-高级设置:用于东亚的字体。您还必须设置font_face
* font_face_cs(字符串)-高级设置:要使用的字体(cs)。您还必须设置font_face
* font_face_h(字符串)-高级设置:要使用的字体(hAnsi)。您还必须设置font_face
* font_hint(字符串)-可选。\'ascii\'(默认),\'eastAsia\',\'cs\'或\'hAnsi\'
* font_size(数字)-以磅为单位的字体大小
* rtl(布尔值)-将其添加到rtl语言的任何文本中
* highlight (字符串) - 高亮颜色。\'black\', \'blue\', \'cyan\', \'darkBlue\', \'darkCyan\',
\'darkGray\', \'darkGreen\', \'darkMagenta\', \'darkRed\', \'darkYellow\', \'green\', \'lightGray\',
\'magenta\', \'none\', \'red\', \'white\',\'yellow\'
* strikethrough(布尔值)-添加删除线时为true。
* superscript(布尔值)-如果可以使用较小的尺寸,则为true可以将此次运行中的文本降低到基
线以下,并将其更改为较小的尺寸。
* subscript(布尔值)-为true时,如果可以使用较小的尺寸,则将运行中的文本升高到基线以
上,并将其更改为较小的尺寸
* link(字符串)-超连接
* hyperlink(字符串)向书签的超链接
await driver.wordAddImage(paragraphObject, imagePath, area = {});
//将图像添加到段落
//参数一 对象,段落对象
//参数二 字符串, 图片路径
//参数三 对象, 可选参数, 图片宽高 {cx: 300, cy: 200}
await driver.wordBreak(paragraphObject);
//段落换行
//参数一 对象,段落对象
await driver.wordAddHorizontalLine(paragraphObject);
//添加一条水平线,看上去与换行相似?
//参数一 对象,段落对象
await driver.wordStartBookmark(paragraphObject, markName);
//添加书签
//参数一 对象,段落对象
//参数二 字符串,标签名
await driver.wordEndBookmark(paragraphObject);
//书签结束位置
//参数一 对象,段落对象
await driver.wordSave(docxObject, filePath);
//保存word文件
//参数一 对象,word对象
//参数二 字符串,保存的路径
await driver.wordReadText(filePath);
//读取word内容
//参数一 字符串,保存的路径
//成功返回读取到的内容,失败返回null
17.Excel文档
await driver.OpenExcel(excelPath);
//打开excel文档
//参数一 字符串,excle路径
//成功返回excel对象,失败返回null
await driver.OpenExcelSheet(excelObject, sheetName);
//打开excel表格
//参数一 对象,excel对象
//参数二 字符串,表名
//成功返回sheet对象,失败返回null
await driver.SaveExcel(excelObject);
//保存excel文档
//参数一 对象,excel对象
//成功返回true,失败返回false
await driver.WriteExcelNum(sheetObject, row, col, value);
//写入数字到excel表格
//参数一 对象,sheet对象
//参数二 整型,行
//参数三 整型,列
//参数四 数字型,写入的值
//成功返回true,失败返回false
await driver.WriteExcelStr(sheetObject, row, col, strValue);
//写入字串到excel表格
//参数一 对象,sheet对象
//参数二 整型,行
//参数三 整型,列
//参数四 字符串,写入的值
//成功返回true,失败返回false
await driver.ReadExcelNum(sheetObject, row, col);
//读取excel表格数字
//参数一 对象,sheet对象
//参数二 整型,行
//参数三 整型,列
//返回读取到的数字
await driver.ReadExcelStr(sheetObject, row, col);
//读取excel表格字串
//参数一 对象,sheet对象
//参数二 整型,行
//参数三 整型,列
//返回读取到的字符
18.邮件收发
await driver.SendMail(smtpServer, smtpPort, authCode, sendMailer, sendName, recvMailer,
subject, text, html = null, attachments = null);
//发送邮件
//参数一 字符串,SMTP服务地址
//参数二 整型,SMTP服务端号
//参数三 字符串,第三方邮箱平台授权码
//参数四 字符串,发送人邮箱
//参数五 字符串,发送人名称
//参数六 字符串,接收人邮箱,多人逗号分开
//参数七 字符串,邮箱主题
//参数八 字符串,发送的正文 文本格式
//参数九 字符串,发送的正文 html格式,可选参数,默认为null
//参数十 字符串, 发送的附件,可选参数,默认为null 示例:
let attachments = [
{ // utf-8字符串作为附件
filename: \'text1.txt\',
content: \'hello world!\'
},
{ //磁盘上的文件作为附件
filename: \'text3.txt\',
path: \'/path/to/file.txt\'
},
{ //文件名和内容类型是从路径生成
path: \'/path/to/file.txt\'
},
{ //使用URL作为附件
filename: \'WindowsDoc.pdf\',
path: \'http://www.ai-bot.net/WindowsDoc.pdf\'
}
]
//成功返回"邮件发送成功!",失败返回错误信息
await driver.GetMail(imapServer, imapPort, authCode, mailAccount,criteria);
//获取邮件
//参数一 字符串,IMAP服务地址
//参数二 整型,IMAP服务端号
//参数三 字符串,第三方邮箱平台授权码
//参数四 字符串,邮箱账号
//参数五 字符串,获取哪类邮件,所有邮件\'ALL\' 未读邮件\'UNSEEN\' 已读邮件\'SEEN\' 第1-3封\'1:3\'
//成功返回邮件信息对象,失败返回错误信息
19.PDF转PNG图片
await driver.PdfToImage(pdfPath, quality = 100);
//获取邮件
//参数一 字符串,pdf路径
//参数二 整型,图片品质,可选参数,默认100
//成功返回true,失败返回false.图片生成在当前目录下,以pdf文件命名,多页Pdf会生成多个图片
20.获取主板识别码
await driver.GetBoisId();
//一般用作脚本授权
//成功返回BoisId,失败返回null

21.语音合成
await wDriver.Tts(saveFile, appkey, keyId, keySecret, text, voice = "ruoxi",ttsArgs = {"format":"wav", "sampleRate":24000, "volume":50, "speechRate":0, "pitchRate":0});
/*支持一次性合成300字符以内的文字,超过300个字符的内容会被截断。
参数1 字符串类型,音频保存文件路径
参数2 字符串类型,appkey
参数3 字符串类型,accessKeyId
参数4 字符串类型,accessKeySecret
参数5 字符串类型,待合成的文本,需要为UTF-8编码,支持SSML,例如:<speak>我<break time="2000ms"/>停顿了两秒</speak> time范围[50, 10000]的整数。
参数6 字符串类型,发音人,可选参数,默认"ruoxi"。支持以下音种:
ruoxi(温柔女声) siqi(温柔女声) sijia(标准女声) sicheng(标准男声)ninger(标准女声)
ruilin(标准女声) siyue(温柔女声) xiaomei(甜美女声) yina(浙普女声) sijing(严厉女声)
sitong(儿童音) xiaobei(萝莉女声) wendy(英音女声) william(英音男声) olivia(英音女声) shanshan(粤语女声)
参数7 JSON类型,可选,默认值为:
{"format":"wav", "sampleRate":24000, "volume":50, "speechRate":0, "pitchRate":0}
"format":音频编码格式,支持pcm/wav/mp3格式,默认"wav"。
"sampleRate":音频采样率,支持24000/16000/8000(Hz),默认24000。
"volume":音量,范围是0~100,默认50。
"speechRate":语速,范围是-500~500,默认是0。
"pitchRate":语调,范围是-500~500,默认是0。
成功返回true,失败返回false*/

await wDriver.LongTts(saveFile, appkey, keyId, keySecret, text, voice = "zhiqi", ttsArgs = {"format":"wav", "sampleRate":48000, "volume":50, "speechRate":0, "pitchRate":0});
/*长语音合成,支持一次性合成最高10万字符,支持精品音质
参数1 字符串类型,音频保存文件路径
参数2 字符串类型,appkey
参数3 字符串类型,accessKeyId
参数4 字符串类型,accessKeySecret
参数5 字符串类型,待合成的文本,需要为UTF-8编码,支持SSML,例如:<speak>我<break time="2000ms"/>停顿了两秒</speak> time范围[50, 10000]的整数。
参数6 字符串类型,发音人,可选参数,默认"zhiqi"。支持以下音种:
超高*景
zhiqi(温柔女声) zhichu(舌尖男声) zhixiang(磁性男声) zhijia(标准女声) *n(广告男声) zhiqian(资讯女声)
zhiru(新闻女声) zhide(新闻男声) zhifei(激昂解说) zhilun(悬疑解说) zhiwei(萝莉女声)
文学场景
aiyuan(知心姐姐) aiying(软萌童声) aixiang(磁性男声) aimo(情感男声) aiye(青年男声) aiting(电台女声)
aifan(情感女声) aide(新闻男声) ainan(广告男声) aihao(资讯男声) aiming(诙谐男声) aixiao(资讯女声)
aichu(舌尖男声) aiqian(资讯女声) aishu(资讯男声) airu(新闻女声) 除以上值外,还支持语音合成所有的发音人
参数7 JSON类型,可选,默认值为:
{"format":"wav", "sampleRate":48000, "volume":50, "speechRate":0, "pitchRate":0}
"format":音频编码格式,支持pcm/wav/mp3格式,默认"wav"。
"sampleRate":音频采样率,支持48000/24000/16000/8000(Hz),默认48000。
"volume":音量,范围是0~100,默认50。
"speechRate":语速,范围是-500~500,默认是0。
"pitchRate":语调,范围是-500~500,默认是0。
成功返回true,失败返回false*/
22.坐标转换
await wDriver.ClientToScreen(hwnd, x, y);
//客户端坐标转换屏幕坐标(忽略标题栏的高度)
//参数1整型,窗口句柄
//参数2整型,x坐标
//参数3整型,y坐标
//返回客户端对应的屏幕坐标{x:number, y:number}
23.视频流操作
await wDriver.YoutubeDownload(url, filePath, maxSize, options);
/*视频流资源下载
参数1 字符串,视频资源链接
参数2 字符串,保存的mp4文件
参数3 整型,最大分辨率(高度) 1920
参数4 JSON对象,
{"subLang":\'zh-Hans\', "thumbnail":true, "proxy": \'https://127.0.0.1:19180/\', "embed": false}
"subLang" 视频字幕 zh-Hans中文
"thumbnail" 是否下载视频封面
"proxy" 代理服务器
"embed" 是否嵌入字幕*/

await wDriver.MergeVideo(srcVideos, destVideo);
//合并视频
//参数一 字符串数组,要合并的视频文件集合
//参数二 字符串,合并完成,要保存的文件名

await wDriver.SplitVideo(srcVideo, destVideo, startTime, endTime);
//分割视频
//参数一 字符串,视频源文件
//参数二 字符串,分割完成,要保存的文件名。格式必须和 srcVideo 一致
//参数三 字符串,分割起始时间
//参数四 字符串,分割 持续/结束时间。"23.18"(23.18秒)为持续时间,0:0:50则为结束时间

await wDriver.ExportAudio(videoFile, audioFile);
//导出音频
//参数一 字符串,视频文件
//参数二 字符串,导出的音频文件

await wDriver.ExportVideo(videoFile, naVideoFile);
//导出视频(无声音)
//参数一 字符串,视频文件
//参数二 字符串,导出的视频文件(无声音),导出格式必须和 videoFile 一致

await wDriver.ConvertVideo(srcVideo, destVideo);
//转换视频格式
//参数一 字符串,源视频
//参数二 字符串,转换后的视频

await wDriver.ConvertAudio(srcAudio, destAudio);
//转换音频格式
//参数一 字符串,源音频
//参数二 字符串,转换后的音频

await wDriver.ConvertSubtitle(srcSubtitle, destSubtitle);
//转换字幕格式
//参数一 字符串,源字幕
//参数二 字符串,转换后的字幕

await wDriver.EmbedSubtitle(srcVideo, subtitleFile, destVideo);
//视频嵌入字幕
//参数一 字符串,要嵌入字幕的视频文件
//参数二 字符串,字幕文件
//参数三 字符串,嵌入字幕完成的文件

await wDriver.VideoToImage(srcVideo, destImage, time);
//视频提取图片
//参数一 字符串,视频文件
//参数二 字符串,要提取的图片
//参数三 字符串,截图时间点 00:01:20或者80.09

await wDriver.DelogoVideo(srcVideo, destVideo, rect, startTime = 0, endTime = 0);
//视频去水印
//参数一 字符串,源视频文件
//参数二 字符串,去水印后的视频文件
//参数三 JSON对象,去水印的矩形位置 {x:10, y:20, width:100, height:200}
//参数四 整型,可选参数,删除水印起始时间
//参数五 整型,可选参数,删除水印结束时间

await wDriver.AdlogoVideo(srcVideo, destVideo, logoImage, point);
//视频去水印
//参数一 字符串,源视频文件
//参数二 字符串,添加印后的视频文件
//参数三 字符串,水印图片
//参数四 JSON对象,水印摆放的位置{x:10, y:20}