自动输入查询结果并截图保存

需要在本地电商ERP软件上挨个输入单号,并查询到结果后,截图保存。数量比较多,人工不现实,望提供方案,感谢。

可以电脑自动化处理,这个没有可以拿来就用的,可提供定制。

主要谨慎操作

img

参考GPT和自己的思路,你需要使用Python的自动化测试工具来模拟鼠标和键盘输入,以及对应的屏幕操作,从而实现自动化运行并截图保存。

以下是一个可能的脚本示例,假设你要查询的单号列表存储在一个文本文件中,每个单号一行,文件名为order_numbers.txt。在这个脚本中,我们使用了pyautogui和Pillow两个库,需要提前安装。

import time
import pyautogui
from PIL import ImageGrab

# 设置输入框和查询按钮的位置
input_box_pos = (500, 500)
search_button_pos = (600, 500)

# 读取订单号列表
with open('order_numbers.txt', 'r') as f:
    order_numbers = f.read().splitlines()

# 模拟输入订单号并截图保存结果
for order_number in order_numbers:
    # 点击输入框,输入订单号
    pyautogui.click(*input_box_pos)
    pyautogui.typewrite(order_number)

    # 点击查询按钮
    pyautogui.click(*search_button_pos)

    # 等待查询结果加载完成,可以根据具体情况调整等待时间
    time.sleep(5)

    # 截图并保存
    screenshot = ImageGrab.grab()
    screenshot.save(f'{order_number}.png')

需要注意的是,这个脚本是基于屏幕坐标来操作的,因此需要在运行脚本之前,确保ERP软件的窗口已经打开,并且输入框和查询按钮的位置正确。如果软件的界面布局发生了改变,这个脚本可能需要做出一些修改才能正常运行。
如果对您有帮助,请给与采纳,谢谢。

仅供参考:
这个任务需要自动化脚本实现。你可以使用 Python 的相关库来编写脚本,自动化输入单号并截图保存查询结果。

以下是一个简单的方案,供参考:

1.安装 Python 的相关库:pyautogui、pillow、opencv-python。

pip install pyautogui
pip install pillow
pip install opencv-python

2.编写脚本,实现自动输入单号并查询结果。

import pyautogui
import time

# 设置搜索框和搜索按钮的位置
search_box = (100, 100)
search_button = (200, 100)

# 定义搜索函数
def search(order_num):
    # 点击搜索框
    pyautogui.click(search_box)
    # 输入单号
    pyautogui.typewrite(order_num)
    # 点击搜索按钮
    pyautogui.click(search_button)
    # 等待查询结果加载完成
    time.sleep(5)

# 调用搜索函数进行查询
search('订单号1')
search('订单号2')
search('订单号3')
# ...

3.实现截图保存。

from PIL import Image
import cv2

# 定义截图函数
def screenshot():
    # 获取屏幕截图
    screenshot = pyautogui.screenshot()
    # 将截图转为 PIL.Image 对象
    image = Image.frombytes("RGB", screenshot.size, screenshot.tobytes())
    # 将 PIL.Image 对象转为 OpenCV 图像
    image = cv2.cvtColor(numpy.array(image), cv2.COLOR_RGB2BGR)
    # 保存截图
    cv2.imwrite('screenshot.png', image)

# 调用截图函数进行截图
screenshot()

你可以将上述代码整合在一起,形成一个完整的自动化脚本,实现自动输入查询单号、查询结果截图保存的功能。需要注意的是,在实际应用中,你需要根据你的实际情况,修改搜索框、搜索按钮的位置以及等待查询结果加载的时间等参数。

方案一:编写爬虫,定时抓取保存数据
可以打开浏览器的开发者模式或者使用抓包工具(Fidder、Charles等),抓取查询的接口,然后可以使用Python编写相应的代码,直接获取结果并解析,然后导出到Excel文件中,感觉这样的一个爬虫相对来说还是比较简单的。

Python爬虫一般都是根据具体网站定制开发的,没有现成的代码可以使用。
编写 Python 爬虫的一般步骤如下:

  1. 确定爬取的目标网站,分析网站结构和页面内容,确定需要抓取的数据。

  2. 使用 Python 中的 requests 库发送 HTTP 请求获取网页内容,并使用 BeautifulSoup、lxml 等库解析网页,提取出需要的数据。

  3. 对获取的数据进行处理和存储。可以将数据存储到数据库、CSV 文件或者其他数据存储方式中。

  4. 设置反爬虫措施,包括设置请求头、使用代理 IP 等方式。

方案二:使用现成的数据采集软件
目前市面上比较流行的数据采集软件包括:八爪鱼采集器、火车头采集器、后裔采集器等,这些软件也是比较方便的,还不需要编写代码,也是比较方便日常数据采集整理的。

该回答引用ChatGPT

为了自动化输入单号并截图保存查询结果,您可以使用Python中的自动化测试工具Selenium和Pillow库来实现。以下是一些步骤,帮助您开始:

1|安装必要的软件和库:

安装Python
安装Selenium:可以使用命令 pip install selenium 进行安装
安装Pillow:可以使用命令 pip install pillow 进行安装
下载适合您浏览器的Selenium WebDriver驱动,并将其放在系统路径中。例如,如果您使用Chrome浏览器,可以下载ChromeDriver并将其放在PATH环境变量中。

2、导入必要的库:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from PIL import Image
import time

3、启动浏览器:


# 设置浏览器选项
options = Options()
options.headless = True  # 启用无头模式,可以在后台运行浏览器,不会弹出窗口
options.add_argument("--window-size=1920,1080")  # 设置窗口大小

# 启动浏览器
driver = webdriver.Chrome(options=options)

4、打开ERP软件网页:


# 替换成你的ERP软件网页地址
erp_url = "https://example.com/erp"
driver.get(erp_url)

5、输入单号并查询:


# 假设单号输入框的ID是 "order_no",查询按钮的ID是 "query_btn"
order_no = "123456"  # 替换成你的单号
order_no_input = driver.find_element_by_id("order_no")
order_no_input.send_keys(order_no)
query_btn = driver.find_element_by_id("query_btn")
query_btn.click()

6、等待查询结果加载完成:


# 假设查询结果表格的ID是 "result_table"
result_table = driver.find_element_by_id("result_table")
time.sleep(5)  # 等待5秒,以确保查询结果加载完成

7、截图保存:



# 获取浏览器窗口的大小
window_size = driver.execute_script("""
    return [window.outerWidth - window.innerWidth + arguments[0],
            window.outerHeight - window.innerHeight + arguments[1]];
""", 0, 0)

# 截取整个窗口
screenshot = driver.get_screenshot_as_png()
image = Image.open(BytesIO(screenshot))

# 截取查询结果表格部分
location = result_table.location
size = result_table.size
left = location['x'] + window_size[0]
top = location['y'] + window_size[1]
right = left + size['width']
bottom = top + size['height']
result_image = image.crop((left, top, right, bottom))
# 保存截图
result_image.save("result.png")

8、循环处理多个单号:


# 假设单号保存在一个列表中,例如:
order_list = ["123456", "789012", "345678"]

for order_no in order_list:
    # 输入单号并查询
    order_no_input = driver.find_element_by_id("order_no")
    order_no_input.send_keys(order_no)
    query_btn = driver.find_element_by_id("query_btn")
    query_btn.click()
    
    # 等待查询结果加载完成
    result_table = driver.find_element_by_id("result_table")
    time.sleep(5)
    
    # 截图保存
    screenshot = driver.get_screenshot_as_png()
    image = Image.open(BytesIO(screenshot))
    
    location = result_table.location
    size = result_table.size
    left = location['x'] + window_size[0]
    top = location['y'] + window_size[1]
    right = left + size['width']
    bottom = top + size['height']
    result_image = image.crop((left, top, right, bottom))
    
    result_image.save(f"result_{order_no}.png")

9、关闭浏览器:

driver.quit()

上述代码将自动化输入单号并截图保存查询结果。您需要根据实际情况修改代码中的ERP软件网页地址、单号输入框和查询按钮的ID、查询结果表格的ID以及单号列表等信息。

erp的话,直接打印每张单据应该会更好一点吧

要实现本地电商erp软件如何实现自动化输入查询数据并截图保存,目前了解到的方法是使用ERP机器人、按键精灵。最好是按键精灵。

可以使用python的自动化工具来实现自动输入查询结果并截图保存的需求,以下是个示例代码:

import time
import pyautogui
from selenium import webdriver
from PIL import Image

# 登录ERP
def login():
    driver = webdriver.Chrome()
    driver.get('http://your.erp.url')
    # 在此输入用户名和密码
    # ...
    return driver

# 查询单号
def query_order(driver, order):
    # 在ERP输入框中输入单号
    input_box = driver.find_element_by_xpath('//input[@class="order-input-box"]')
    input_box.clear()
    input_box.send_keys(order)
    # 点击查询按钮
    query_btn = driver.find_element_by_xpath('//button[@class="query-btn"]')
    query_btn.click()

# 保存截图
def save_screenshot(order, screenshot_path):
    # 等待页面加载
    time.sleep(5)
    # 截图
    screenshot = pyautogui.screenshot()
    screenshot.save(screenshot_path)

# 读取单号列表
order_list = ['order1', 'order2', 'order3']
# 启动ERP并登录
driver = login()
# 循环查询每个单号
for order in order_list:
    query_order(driver, order)
    # 等待页面加载并保存截图
    screenshot_path = f'{order}.png'
    save_screenshot(order, screenshot_path)
# 退出ERP
driver.quit()

以下答案基于ChatGPT与GISer Liu编写:

要实现本地ERP软件自动化控制,可以使用Python中的pywinauto库。pywinauto是一个用于自动化GUI测试和操作Windows应用程序的库,它可以模拟用户的操作,例如点击按钮、输入文本、选择下拉框等等。

下面是一个完整的示例程序,它包括了启动ERP软件、选择窗口、输入单号并查询、等待查询结果、截图保存等完整的流程:

import time
import pywinauto

# 启动ERP软件
app = pywinauto.Application(backend="uia").start("path/to/ERP.exe")

# 选择需要操作的窗口
dlg = app.window(title="ERP窗口标题")

# 输入单号并查询
for i in range(1, 100):  # 假设需要查询的单号范围是1到100
    # 输入单号
    dlg.child_window(title="单号输入框标题").set_text(str(i))

    # 点击查询按钮
    dlg.child_window(title="查询按钮标题").click()

    # 等待查询结果加载完成
    result_dlg = dlg.child_window(title="查询结果对话框标题", visible_only=False)
    result_ctrl = result_dlg.child_window(title="查询结果控件标题", control_type="Custom")
    while not result_ctrl.exists():
        time.sleep(1)

    # 截图并保存
    result_dlg.capture_as_image().save(f"result_{i}.png")

    # 关闭查询结果对话框
    result_dlg.close()

在这个示例程序中,我们首先使用pywinauto.Application启动ERP软件,并选择需要操作的窗口。然后,我们使用一个循环来输入单号并查询,在每次查询后等待查询结果加载完成。在查询结果加载完成后,我们使用capture_as_image()方法进行截图并保存到本地文件,并关闭查询结果对话框。需要注意的是,在这个示例程序中,我们使用了visible_only=False参数来获取隐藏的查询结果对话框,因此在程序执行过程中,需要替换掉示例中的窗口标题、单号输入框标题、查询按钮标题、查询结果对话框标题、查询结果控件标题和保存路径等具体参数,以适应你的实际情况。

该回答引用ChatGPT
可以考虑使用自动化测试工具进行实现,如Selenium或者Appium。

具体实现思路如下:

使用Selenium或Appium启动本地电商ERP软件,并进入查询单号的界面。

通过编写代码自动输入单号,触发查询操作。

等待查询结果加载完成,并使用代码实现截图操作。

将截图保存至本地指定的文件夹。

需要注意以下几点:

需要确保软件界面和输入框等元素的唯一标识符,以便能够准确地定位和操作。

如果单号数量较多,建议使用循环或者批处理的方式进行操作。

为了避免被系统识别为恶意操作,建议适当加入延时等措施。

希望能对您有所帮助!