高手过招第 5 期 - 超实用 RPA 处理网页问题的方法与技巧
一、离线安装 Google 插件
-
找到插件
插件默认是在安装目录下的 Plugin\Com.Isearch.Extension.Chrome 中的 Chrome.crx。 -
拖动安装插件
打开 Google 扩展程序,启用开发者模式,拖动 Chrome.crx 至扩展程序。
二、高效判断网页是否加载完成
-
理解什么是等待时间
设计器组件都有一个叫等待时间的参数,它的作用很大。例如我们鼠标点击组件设置等待时间为 10000,则表示在十秒钟内设计器会循环的获取我们需要点击的元素,只有成功点击到元素或者该组件运行时间超过十秒钟,才会进行下一个动作。 -
巧用获取文本、元素是否存在组件
通常我会使用(获取文本、元素是否存在)组件来判断网页是否加载完成。使用这两个组件的原因是它们获取不到元素后并不会抛出异常。
三、学会使用 Google 开发者工具
- 快速复制元素 selector、xpath……
在 rpa 开发中我们经常会使用到 selector、xpath, 当我们需要用到却又不会写的时候可以打开 Google 的开发者工具 (F12),可以快速的复制。
四、强大的 RPAExplorer
-
进入 RPAExplorer
设计器内置有个 RPAExplorer,当我们拾取元素后,点击组件属性表上方的画笔图标就能进入。 -
RPAExplorer 的功能
活动传送门 [高手过招第五期:] 高手过招第 5 期:超实用 RPA 处理网页问题的方法与技巧
这个我也收藏一下。
旧版本用获取文本效果一样
说的没错,不过老版本没有元素是否存在 😂
我个人认为是单个组件(元素是否存在)就可以判断网页是否加载完成了。
因为例如你设置等待时间为 10000,则理论上他会在十秒钟内每秒执行一次判断元素是否加载。
在十秒钟内的任意一秒元素加载完成都会立刻返回 true,可以避免时间上的浪费,而超过我们设定的十秒返回 false。
如果你觉得十秒不够,例如可以设置等待时间为 30000,则它会在三十秒内循环判断三十次。
而在外部再加 While 我觉得代码是有些冗余的。
while 循环更好一点,两个判断条件 1、元素是否存在 直到变为 True 2、循环次次数加延时控制超时时间会比较好
selenium 中之前判断整体加载完成代码附上(望大神完善)
class DynamicLoadState:
def call(self, driver):
LoadComplete = False
if driver.execute_script(“return document.readyState”) == ‘complete’: LoadComplete = True
return LoadComplete
😋针不戳儿