防止Selenium被检测

很多网站或者防火墙针对Selenium进行了检测,对程序控制的浏览器不予响应,导致我们的网页自动化无法运行。

可以通过这个网站进行检测 https://bot.sannysoft.com/


原因是webdriver有一些特征是完全可能被服务器端或防火墙检测到的。
传统的应对方法基本都失效了,比如stealth.js,cdp command等等。

undetected_chromedriver

undetected_chromedriver可以通过检测,但是如果你的程序大都是webdriver写的,迁移到undetected_chromedriver也是不小的工作量。

1
2
3
4
import undetected_chromedriver as uc
import time
driver = uc.Chrome()
driver.get('https://bot.sannysoft.com/')

试试webdriver驱动firefox

顺利通过检测,为了避免以后firefox自动升级而driver不能适配,最好把firefox打包成portable版的。
以前webdriver编写的大部分代码不需要更改。


阅读全文
FolderWatch

FloderWatch是来也UiBot Creator的一款插件,指定文件类型,监测指定文件夹,当指定文件夹出现新增指定类型的文件时,返回新增文件的文件名。

看到UiBot论坛里有人问”如何定时在下载目录中判断有没有新增文件?”,一种思路是定时获取文件列表,然后获取一下数组的最大下标,2进行比较,变多了就说明文件新增了,然后去找新增文件。

这种轮询的方式不够优雅,实际上.net有一个FileSystemWatcher类,可以在文件发生变化的时候发送通知,这种Push的方式才是正解。

正好之前用Powershell调用FileSystemWatcher类实现了类似功能,有一个小缺点是Powershell无法知道RPA的运行状态,UiBot为Python调用提供了IsStop()函数,可以判断RPA已停止,于是用Python重写了一个新增文件监测FolderWatch插件。

插件名称:新增文件监测FolderWatch

功能:指定文件类型,监测指定文件夹,当指定文件夹出现新增指定类型的文件时,返回新增文件的文件名。

适用场景:获取扫描图片、下载、FTP等文件夹的新增文件,以便进行下一步自动化操作。

使用方法:

  1. 将ZIP解压到extend\python目录下,包括FolderWatch.lib文件夹和FolderWatch.py

  2. UB调用代码

Import FolderWatch
Dim sNewFile
sNewFile=FolderWatch.Watch(“d:\desktop”,”*.jpg”)
Traceprint(sNewFile)
3. d:\deskop文件夹如创建了新的jpg文件,函数将返回该文件的路径。

  1. FolderWatch.Watch(参数1,参数2),参数1为要监测的文件夹,注意转义,参数2为要监测的文件类型,例如”.txt”,”.*”等

阅读全文
TextScreen

TextScreen屏幕文字是华为WeAutomate Studio的一款插件, 用一种优雅、非阻塞(Non-Blocking)的方式在屏幕上显示文字。

缘 起

给客户做PoC,把脚本运行的过程录屏发给客户,客户之前没有接触过RPA,表示看不懂,只看到鼠标键盘进行了一系列的操作,于是给视频加上了字幕,对每个步骤进行了讲解,客户一下就看懂了。

电脑面前没人的时候,正在运行RPA脚本的电脑看起来怪怪的,明明没人电脑却操作的行云流水,如果有一个提示就好了。

WeAutomate在运行时可以通过消息框或实时日志给予用户提示,消息框文字很小,需要用户点击关闭或延时消失,用户可能会忽略,而日志基本上是给技术人员准备的,信息太多,滚动太快,有么有更好的方式?

如果你有上面的痒点,那么华为WeAutomate的这款插件-屏幕文字可能适合你。

屏幕文字可以在屏幕上显示一行文字,这行文字没有窗体,永远位于顶层,背景透明,就像这样:

以优雅、非阻塞(Non-Blocking)的方式在屏幕上直接显示提示信息。

类似的功能UiBot也有,称为写屏,不得不说这个功能很好用。

UiBot的RPA运行时典型界面是这样的:屏幕上像字幕一样显示:”机器人正在运行,期间请勿操作鼠标键盘”,”正在处理数据文件xxx.xlsx”,”调用OCR识别发票文件xxxx,当前处理到13/137”,”登录XXX系统失败,尝试再次登录2/3”……

前段时间成都因为疫情静默了15天,闲着也是闲着,开发了WeAutomate的插件-TextScreen 屏幕文字,自家买菜用,也希望能帮到你。

WeAutomate插件-屏幕文字

功能:在屏幕上显示一行文字,在机器人运行期间给用户最直观的提示。

  • 文字水平自动居中,可选大小、颜色、垂直靠上、居中、向下。

  • 文字无窗体,背景透明,永远位于顶层不会被遮挡。

  • 文字将持续显示,直到被新的文字替换或关闭。

  • 非阻塞运行(Non-Blocking)


阅读全文