Windows自动化3️⃣WindowsPC拽起时长问题解决方案

问题描述:

  1. Windows应用从点击, 到加载完成, 需要一定的时间
  2. 后台是否已经启动过当前程序?
  3. 启动后, 前后台应用关闭问题等

我的解决思路:
首先检查进程 , 当前进程是否在运行, 如果进程在运行, 需要先关闭进程
关闭进程后, 开始我们的自动化流程, 去拽起 应用
拽起应用后, 可以先前台关闭当前应用, 方便后面运行我们的自动化流程

import psutil

# 获取当前windows , 所有进程信息名称, 并去重
def get_all_process():
    list_process = set()
    # 获取当前windows , 所有进程信息
    for proc in psutil.process_iter(['pid', 'name']):
        list_process.add(proc.info["name"])
    return list_process
# 后台是否有Hwork.exe , 如果没有就需要 启动Hwork,会比较耗时, 如果有就不需要
def hwork_start(path):
    all_process = get_all_process()
    if "Hwork.exe" in all_process:
        return True
    else:
        try:
            # 需要启动Hwork
            from pywinauto.application import Application
            # 启动
            Application(backend='uia').start(path)
            time.sleep(15)
            # 发送Alt+F4快捷键, 关闭窗口,关闭前台
            pyautogui.hotkey('alt', 'f4')

            return True
        except :
            return False

不同于web自动化, PC自动化scope为方法级别

@pytest.fixture(scope="function", autouse=True)
def pc_start():
    # 添加启动参数
    desired_caps = {}
    desired_caps['app'] = r"D:\Users\duxiaowei\AppData\Local\Programs\Hwork\Hwork.exe"
    #
    if hwork_start(desired_caps['app']):
        # 客户端连接 Server,启动 Session 会话
        driver = webdriver.Remote(command_executor='http://127.0.0.1:4723', desired_capabilities=desired_caps)
        # 默认全局隐式等待设置
        driver.implicitly_wait(20)
        # 设置启动检查等待,等待搜索
        errors = [NoSuchElementException, ElementNotInteractableException, ElementNotVisibleException]
        wait = WebDriverWait(driver, timeout=100, poll_frequency=2, ignored_exceptions=errors)
        wait.until(EC.visibility_of(driver.find_element(by=By.NAME, value="搜索")))
        # 强制等待
        time.sleep(2)
    else:
        print("请检查-Hwork程序是否启动成功!")

    return driver

PC自动化解决问题思路: 不同于web自动化, PC自动化可能需要多种工具混合使用, 才能方便解决一个问题, 故而把== 解决问题, 放在首位,== 然后才是 优化框架, 技术方案选择.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值