RPA日期相关处理

RPA在处理流程时,日期处理是一个比较常见的场景,其中包括日期元素的输入以及

概念

  • 时间戳

    即从1970年1月1日0时0分0秒到当前时间点的所有秒数(String类型)。因其不会重复的特性,可实现在重复录入数据时快速生成不一样的参数。

    • 例 生成结果文件时名称上拼接时间戳,可简单有效的避免因文件名重复而导致的被覆盖的情况
  • Datetime类型

    时间及日期变量类型,可完成日期及时间的增减,查询

日期输入

  • 最常见的输入方式即通过设置文本组件,把日期输入框当一个普通的输入框直接输入业务值。

    一定要保证输入的格式与手动选择生成的格式保持一致,如手动点击生成的“2022-02-12”,如果填写"2022/02/12" 会导致输入异常。
    示例待补充

  • 部分页面的输入元素是在点击的时候通过触发JS修改了其他字段的值且一般不在页面有变化。处理方式:

    结合Chrome开发者工具,挖掘具体修改了哪些字段的值,然后通过修改元素属性来达到JS执行之后的效果。
    示例待补充

  • 其他查找不到规律的输入框,只能通过计算年月日差值然后计算点击次数,模拟手动点击的效果(支持范围最广,分析最为复杂)
    示例待补充

组件使用说明

获取时间戳

只需要填写输出结果变量即可返回一串每次结果不一样的字符串。

生成日期

将某个用字符串描述时间的字符串,按指定形式解析为对应的Datetime类型,输出变量供其他组件使用。

其中y代表的是年,M代表月份,d代表日期,H/h代表小时,mm代表分钟,s代表秒。

时间字符串日期格式说明
“2022-03-25”yyyy-MM-dd
“2022-1-01 13:03:05”yyyy-M-d HH:mm:ss月份,日期格式为单个当值小于10仅显示1位数字,当大于9时自动转化为2位
“2022-03-25 13:15:56”yyyy-MM-dd HH:m:ssH代表24小时制,h代表12小时制
“2022年03月25日”yyyy年MM月dd日
“23/03/05”yy/MM/ddyy代表只取2023年的23年

日期运算

输入一个Datetime值,按各种时间维度进行增减对应数值并输出Datetime结果到变量

  • 例 2022-03-31,选择增加1天输出结果为2022-04-01

查找日期

输入一个Datetime,并返回一个上一个/当前/下一个 (月初、月末、星期*)

  • 例 输入2022-03-25,选择上一个及月末,则输出结果为2022-02-28

时间计算

  • 两个Datetime之间可以进行减法操作,返回结果为两时间之间的时间差

高阶函数

除了可以使用现有的组件完成外,也可以结合设计器的代码补全功能通过函数实现快速设计的目的。

  • 例 Datetime.addDays(2),计算结果为2天后,如果改完-1则结果为1天前。同理其他函数也一样的操作
  • 例 Datetime.Month,返回Datetime变量所在的月份,以int形式返回
    在这里插入图片描述
在弘基 RPA实现日期选择功能通常可以通过模拟用户操作来完成,特别是在处理网页或桌面应用程序中的日期控件时。以下是几种常见的实现方式: ### 1. 使用“设置文本”操作直接输入日期 如果目标控件支持直接输入日期(如文本框),可以通过“设置文本”操作将日期值写入控件中。日期格式需要与控件要求的格式一致,例如 `YYYY-MM-DD` 或 `MM/DD/YYYY`。 ```python # 示例:将当前日期格式化为字符串并写入控件 from datetime import datetime current_date = datetime.now().strftime("%Y-%m-%d") # 假设 write_to_control 是一个自定义函数,用于将文本写入目标控件 write_to_control(current_date) ``` ### 2. 模拟点击日历控件 对于弹出式日历控件,通常需要先点击触发按钮打开日历,然后通过查找特定的日期元素进行点击。可以使用图像识别或控件属性匹配的方式来定位和点击对应的日期。 ```python # 示例:使用图像识别点击指定日期 def select_date_by_image(date_str): open_calendar() # 打开日历控件 click_on_image(f"date_{date_str}.png") # 点击对应日期的截图 select_date_by_image("2023-10-15") ``` ### 3. 使用自动化脚本控制浏览器或桌面应用 如果目标系统是基于 Web 的,可以结合 Selenium 或 Puppeteer 等工具编写脚本来直接操作 DOM 元素。如果是桌面应用,则可以使用 WinAppDriver 或类似的 UI 自动化框架。 ```python # 示例:使用 Selenium 设置 HTML5 日期控件 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://example.com") date_input = driver.find_element_by_id("datePicker") date_input.send_keys("2023-10-15") ``` ### 4. 利用内置组件或扩展库 某些 RPA 平台提供了专门用于处理日期选择的组件或扩展库,可以直接调用这些模块以简化开发流程。查阅弘基 RPA 的官方文档可能会发现更高效的解决方案。 ### 5. 动态计算偏移量并模拟键盘输入 在某些情况下,可能无法直接访问日历控件的内部结构,这时可以通过计算目标日期与当前日期之间的天数差,模拟键盘输入来调整日期。 ```python # 示例:根据日期差模拟按键选择未来某一天 def select_future_date(days_offset): today = datetime.now() target_date = today + timedelta(days=days_offset) formatted_date = target_date.strftime("%Y-%m-%d") send_hotkey_sequence(formatted_date) # 发送组合键或字符序列 select_future_date(7) # 选择一周后的日期 ``` 以上方法可以根据具体的应用场景灵活选择,确保与目标系统的兼容性和稳定性[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值