python的彩色print
print-color
支持的颜色
purple
blue
green
yellow
red
magenta
cyan
white print-color
支持的颜色
purple
blue
green
yellow
red
magenta
cyan
white 似乎$$document.querySelector, $$等价于document.querySelectorAll.
还是node下的工具好用:md-to-pdf-ng, 不过这个工具有点儿大, 自带一个Chromium.
先创造两个概念.
实时服务: 为极短时间内需要得到满足的需求提供的服务. 极短时间通常为几分钟. 如打车/批改作业/外卖等.
居中平台: 联系供需两端生意的平台.即: 自身既不提供需求,也不提供产品或服务, 而是由个体或组织提供. 例子是: 天猫/淘宝/滴滴/美团外卖等. 而京东/亚马逊有自营店, 则不算.高德地图/微信等直接提供服务, 也不算.
互联网实时服务的居中平台似乎都不约而同推出过抢单机制. 滴滴司机抢单/美团外卖小哥抢单/作业帮批改方也抢单. 似乎最后抢单都沦落为机器人抢单.
抢单的出发点开始都是公平公正公开吧, 另外还有点竞争投标的意味, 最后看谁手速快. 但需求似乎永远稀缺, 人永远比不过机器, 所谓供方抢单最后都变成机器人大战. 保证公平似乎还都要回到派单机制.
技能树展示倒是很好的主意
https://blog.csdn.net/lewky_liu/article/details/79353151
不同于ASCII 32, ASCII 160是页面上的 产生的不间断空格, 这个玩意儿如果读到你的字符串里, 你想用普通空格去找是怎么也找不出来的哈哈, 160的16进制是a0,转义是\xa0
ord('a') # 97 关闭输入法的快捷键Alt+Shift, 直接切换到英文状态
https://developer.cisco.com/certification/
似乎是一个和CCxx体系对等的认证体系, 价格没找到, 50多美金?
配置初始化/目标程序初始化/获取新数据三个阶段发生异常就会直接退出目标程序初始化开始config.xlsx的读取方式为从commander中读取.读取config.xlsx->读取并设置logLevel->读取并设置g_iRetryNumber->config.xlsx的内容赋值给全局变量g_dicConfigDatares\data\config.xlsx中读取配置. 这个文件已有的默认参数不要修改, sheet名不要修改, 其他流程块会有用的. 不过可以在已有sheet里增加新的参数, 也可以增加新的sheet名. 增加新参数不需要改代码, 增加sheet名需要修改sheetsName数组g_dicConfigData["常量设置"]["ExScreenshotsFolderPath"]吧, 似乎这儿又没有专门给一个短一点儿的变量用了.config.xlsx中, 最好另建立文件. 我看似乎也不那么绝对, 如果业务数据不多的话, 放在一个文件里, 用户也比较好管理吧config.xlsx/本地参数/appsName中的进程配置初始化中赋值True, 在获取新数据中赋值False, 而由于配置初始化只运行一次, 意味着这个判断只会有一次为True. 这次为True的目的只是为了在初次运行前获取新数据配置初始化中赋值False, 在重试计数中按最大重试计数进行翻转. 即: 未达到最大重试次数时为True,并把g_iCount++, 达到了为False并将重试计数器g_iCount清零. config.xlsx["常量设置"]["ExScreenshotsFolderPath"]的配置路径保存本地截图并上传给commander截图的. If (shotsPath <> "") And (Not IsNull(shotsPath))
Upload.UploadScreenShot("image_"&sRet,shotsPath,True,{"sDescribe":"最后一次重试后的现场截图"})
End If
config.xlsx["常量设置"]["ExScreenshotsFolderPath"]中写配置路径的\是不需要转义的,写一个\就行了目标程序初始化,目的应该是杀一下app清洁一下运行环境. 根据是否重试,决定再操作一遍还是操作下一组数据
objExcelWorkBook = Excel.OpenExcel("",True,"Excel","","")
arrayRet = Excel.ReadRow(objExcelWorkBook,"Sheet1","A1")
Excel.CloseExcel(objExcelWorkBook,True)
g_dicTransactionItem["TransactionData"] = arrayRet
* 当然我觉得为了读取一行数据就开关一次excel(这么耗费CPU和时间的操作)似乎有些傻, 是我的话就在`配置初始化`里面一次从Excel读取所有数据,然后再进行内存操作, 所以上面这段excel读取代码可以删掉,重写为变量读取代码.
## 是否有数据判断
* **需要修改键值**
如下:
```vb
Not IsNull(g_dicTransactionItem["TransactionData"])
TransactionData是需要修改为实际的键名的, 如出发地之类的,如果找不到这个键名就认为没有数据g_dicTransactionItem这一项在配置初始化/获取新数据中都会初始化为null. 当然这样看在配置初始化中再初始化为null显得很多余, 且不说在flow定义全局变量的时候本来就会初始化一次, 这样就至少初始化为null 3次了.配置初始化/目标程序初始化/获取新数据三个模块的异常流程结束了$开头的 $BlockInput: 上一个实线连接的流程块的Return值,或者上一个虚线连接的流程块抛出的异常
$UB.InstallPath: UiBot的安装路径
$UB.Version: UiBot的版本信息,将会得到一个Dict变量,里面包含不同的字段,标明版本信息的不同组成部分。今后还会扩充
$Flow.WorkPath:当前运行的流程或者子流程的所在路径。如果是流程,就是流程所在路径。如果是子流程,就是子流程所在路径。
$Flow.ElaspedTime:当前运行的流程或者子流程已经运行的时间,以毫秒为单位。比如 $Flow.ElaspedTime 的值为100,代表从当前流程开始运行,到目前为止已经过了100毫秒。
{
"InstructionBits" : 64,
"Product" : "UiBot Creator Community 5.5.0"
}
因为能在worker和store上运行, 所以对应的版本显示应该有所不同.