uTools browser 简称 ubrowser,是根据 uTools 的特性,量身打造的一个可编程浏览器。
这是令我们感到特别兴奋一组API,因为利用 ubrowser 你可以轻而易举连接一切互联网服务,而且可以与uTools完美结合。
ubrowser 拥有优雅的链式调用接口,你可以用口语化的数行代码,实现一系列匪夷所思的操作。例如:
1、自动化测试(自动打开页面、点击、判断,彻底解放测试人员。)
2、自动抢票
3、自动去除搜索引擎广告
4、自动将选中的文字、图片保存到各类云笔记
基本demo:
// 打开"必应" 并搜索 "uTools"
utools.ubrowser.goto('https://cn.bing.com')
.value('#sb_form_q', 'uTools')
.click('#sb_form_go')
.run({ width: 1000, height: 600 })
useragent(userAgent)userAgent String设置 User-Agent
goto(url, headers)url String
headers Object (可选)
{ Referer: string, userAgent: string }
前往
goto(mdText, title)mdText String
Markdown 文本
title String (可选)
窗口标题
Markdown 转 Html 并显示
viewport(width, height)width Integerheight Integer页面大小
hide()隐藏 ubrowser 窗口
show()显示 ubrowser 窗口
css(cssCode)cssCode String注入样式
press(key, ...modifier)key String
modifier String (可选)
control | ctrl | shift | meta | alt | command | cmd
键盘按键
paste(text)text String (可选)
文本字符串 | 图片base64
执行粘贴
screenshot(arg, savePath)arg String | Object (可选)String - 要截取的DOM元素
Object - 截图位置和大小 { x: Integer, y: Integer, width: Integer, height: Integer }
为空 截取整个窗口
savePath String (可选)
图片保存路径, 也可以是完整PNG文件路径。默认 存储在临时目录
部分网页截图
pdf(options, savePath)options Object (可选)
{ marginsType: 0 | 1 | 2, pageSize: ('A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid') | { width: Integer, height: Integer } }
与 Electron API 一致
savePath String (可选)
图片保存路径, 也可以是完整pdf文件路径。默认 存储在临时目录
保存页面为PDF
device(arg)arg String | Object
String - 'iPhone 11' | 'iPhone X' | 'iPad' | 'iPhone 6/7/8 Plus' | 'iPhone 6/7/8' | 'iPhone 5/SE' | 'HUAWEI Mate10' | 'HUAWEI Mate20' | 'HUAWEI Mate30' | 'HUAWEI Mate30 Pro'
Object - { size: { width: Integer, height: Integer }, useragent: String }
模拟设备
cookies(name)name String (可选)为空获取全部cookie 获取cookie
setCookies(name, value)name Stringvalue String设置 cookie
setCookies(cookies)cookies Array
[{ name: String, value: String }]
设置 cookie
removeCookies(name)name String删除 cookie
clearCookies(url)url String (可选)
在执行"goto"前执行 url参数必需
清空 cookie
devTools(mode)mode String (可选)
'right' | 'bottom' | 'undocked' | 'detach' 默认为 'detach'
打开开发者工具
evaluate(func, ...params)func Function
在网页内执行的函数
param Any (可选)
传递给 func 的参数
执行JS函数 如果有返回值将加入到返回结果中
.evaluate((param1, param2) => {
return document.querySelector('div').innerText
}, 'param1', 'param2')
wait(ms)ms Integer
等待的毫秒数
等待
wait(selector, timeout)selector String
DOM元素
timeout Integer (可选)
超时 默认 10000 ms
等待DOM元素出现
wait(func, timeout,...params)func Function
在网页内执行的函数,返回 true 结束等待
timeout Integer (可选)
超时 默认 10000 ms
param Any (可选)
传递给 func 的参数
等待JS函数执行返回 true
when(selector)selector String
DOM元素
当元素存在时执行直到碰到 end() 方法
when(func, ...params)func Function
在网页内执行的函数,返回 true 执行
param Any (可选)
传递给 func 的参数
当JS函数执行返回 true 时执行, 直到碰到 end() 方法
end()与 when 配套使用
click(selector)selector String单击元素
mousedown(selector)selector String元素触发按下鼠标左键
mouseup(selector)selector String元素触发释放鼠标左键
file(selector, payload)selector String
input type='file' 元素
payload String | Array | Buffer
文件路径 或 路径集合 或 文件Buffer
为网页中的file input 赋值
value(selector, val)selector String
input textarea select 元素
val String
为网页中的input textarea select 元素赋值
check(selector, checked)selector String
checkbox radio 元素
checked Boolean
是否选中
checkbox radio 元素选中或取消选中
focus(selector)selector String元素获得焦点
scroll(selector)selector String滚动到元素位置
scroll(y)y IntegerY轴滚动
scroll(x, y)x Integery IntegerX轴和Y轴滚动
run(ubrowserId)ubrowserId Integer
utools.getIdleUBrowsers() 中获得
返回 Promise
运行在闲置的 ubrowser 上
run(options)options Object
Object 返回 Promise
启动一个 ubrowser 运行