pywinauto 在发布数据的时候 ,怎么记录发布了那一条,第二次发布的时候检查数据发布到哪里了,然后接着发??
在使用pywinauto进行数据发布时,您可以通过记录已发布的数据来实现检查数据发布的位置,并继续发布下一条数据。以下是一种可能的解决方案:
在发布每条数据之前,创建一个记录器(如列表)来记录已发布的数据的位置。
发布数据时,将数据发布到目标位置,并将该位置添加到记录器中。
在下一次发布数据之前,检查记录器中的最后一个位置。
接着从最后一个位置继续发布数据。
以下是一个简单的示例代码:
from pywinauto import Application
# 创建记录器(列表)来记录已发布的数据位置
published_data_locations = []
# 初始化pywinauto应用程序
app = Application().start('your_application.exe')
# 循环发布数据
for data in data_to_publish:
# 发布数据到目标位置
publish_data(data)
# 记录发布的数据位置
published_data_locations.append(get_published_data_location())
# 下一次发布数据之前,检查最后一个位置
last_published_location = published_data_locations[-1]
# 从最后一个位置继续发布数据
for data in data_to_publish:
# 检查是否到达已发布数据的最后位置
if get_current_location() == last_published_location:
break
# 从当前位置继续发布数据
publish_data(data)
# 更新发布的数据位置
published_data_locations.append(get_published_data_location())
请注意,以上代码仅为示例,实际实现可能需要根据您使用的应用程序和具体场景进行调整。
from pywinauto.application import Application
# 启动navicat
app = Application('uia').start(r'D:\tools\Navicat Premium 15\navicat.exe')
# 通过窗口标题选择窗口
dlg = app['Navicat Premium']
# dlg.print_control_identifiers()
# 选择控件 ---- 选择当前窗口的各级菜单
# 方式一
# menu = dlg.Menu
# print(menu.print_control_identifiers())
# 方式二
menu = dlg['Menu']
# print(menu.print_control_identifiers())
# ------报错------------
# file = dlg['Menu']['文件']
# print(file.print_control_identifiers())
# 方式三
# menu下面的中括号显示的是['MenuItem', '文件MenuItem', '文件', 'MenuItem0', 'MenuItem1']
# 文件是第一个子菜单,根据菜单名查找就好,不用管中括号里面有几个
file = menu.child_window(title="文件", control_type="MenuItem")
file.print_control_identifiers()
存储测试执行进度
操作记录是需要你自行编写Python实现,pywinauto只是模拟鼠标键盘操作,不具备保留操作记录的特性
可以使用pywinauto 的自动化采集来实现
基于 pywinauto 的自动化采集任务
https://blog.csdn.net/qq_40734247/article/details/127351274
pywinauto本身不带记录的,需要你自己写程序,将每次使用pywinauto发布数据的时候,发布了什么数据以及将数据发布到了哪个地方。可以使用文件存储或者使用数据库存储都可以,甚至临时使用一个列表或者字典存储都可以的。
为每条数据添加一个唯一标识,上传完毕后进行记录
last_published_index.txt
的文本文件,并将其初始化为 0(如果你是从第一条开始发布)。last_published_index.txt
文件中。open()
、read()
和 write()
)来读取和写入记录文件。这只是一种基本的方法示例,具体的实现方式取决于你的需求和代码结构。你可能需要根据自己的情况进行调整和优化。
引用chatgpt内容作答:
在使用Pywinauto进行数据发布时,你可以通过以下方法记录已发布的数据和检查下一次发布的位置:
记录已发布的数据:在每次成功发布数据后,你可以将已发布的数据记录到一个列表或文件中。你可以创建一个空列表,并在每次成功发布后将新数据添加到列表中,或者将数据写入一个文本文件中。例如:
# 创建一个空列表用于记录已发布的数据
published_data = []
# 在发布数据后,将数据添加到列表中
published_data.append(data_to_publish)
# 或者将数据写入文本文件
with open('published_data.txt', 'a') as file:
file.write(data_to_publish + '\n')
检查数据发布位置:在下一次发布数据之前,你可以检查已发布数据的位置,以确定从哪里接着发布。如果你将数据记录在列表中,你可以使用列表索引来获取最后一条已发布数据的位置。如果你将数据记录在文本文件中,你可以读取文件并获取最后一行的数据。例如:
# 从列表中获取最后一条已发布数据的位置
last_published_data = published_data[-1]
# 从文本文件中获取最后一行的数据
with open('published_data.txt', 'r') as file:
lines = file.readlines()
last_published_data = lines[-1].strip()
在获取到上次发布的位置后,你可以从该位置继续发布下一条数据。
请注意,这只是一种基本的记录和检查方法示例,你可以根据实际需求进行适当的修改和扩展。
来自GPT的回答:
在使用 pywinauto 进行数据发布时,你可以使用一些技术来记录已发布的数据并在下次发布时进行检查。以下是一种可能的方法:
使用某种数据结构(例如列表或字典)来记录已发布的数据。每当你发布一条数据时,将其添加到数据结构中。你可以根据需要选择适合的数据结构和存储方式。例如,使用列表可以按照发布的顺序记录数据,而使用字典可以根据某个唯一标识符(例如数据的ID)记录数据。
在下次发布数据之前,检查已发布的数据记录。你可以遍历数据结构,并根据其中的信息确定从哪里开始继续发布。例如,你可以比对已发布的数据和要发布的数据,找到最后一条已发布数据的位置,然后从下一条开始继续发布。
根据检查结果,接着发表数据。你可以使用相应的方法(如点击按钮、输入文本等)来将数据发布到正确的位置。
以下是一个简单的示例代码,演示如何使用列表记录已发布的数据和检查下一条要发布的数据:
python
Copy code
import pywinauto
# 假设已有的数据列表
published_data = []
# 模拟发布数据
def publish_data(data):
# 在这里执行发布数据的操作
# ...
# 将已发布的数据添加到列表中
published_data.append(data)
# 获取下一条要发布的数据
def get_next_data():
# 在这里根据需要获取下一条数据的逻辑
# 这里使用简单的示例数据
return "New Data"
# 检查下一条要发布的数据位置
def check_next_position():
# 假设数据以某种方式标识,例如唯一ID
last_published_id = published_data[-1]["id"]
# 在这里根据已发布的数据记录和下一条数据的标识,确定下一条数据的位置
# ...
# 这里简单返回最后一条已发布数据的位置+1
return len(published_data) + 1
# 主循环
while True:
# 获取下一条要发布的数据
next_data = get_next_data()
# 检查下一条数据的位置
next_position = check_next_position()
# 输出要发布的数据和位置
print(f"Publishing Data: {next_data} at Position: {next_position}")
# 发布数据
publish_data(next_data)
# 进行一些等待或其他操作,以便准备下一次发布
# ...
请注意,这只是一个简单的示例,你需要根据实际情况进行适当修改和调整。具体的实现方式取决于你的应用程序和数据发布的环境。