在某些特定的环境下,IE会出现卡死(未响应)的情况,当出现此状态时所有的IE操作都会卡住并等待IE再次响应,在RPA中有默认的超时机制,如果操作的IE或其他win32程序在指定的超时时间(1小时)内未响应就会抛出rpa.core.Au3TimeoutError异常

要使用超时机制客户端版本必须为3.3.19及以上


示例代码:

rpa.it.settimeout(2*60) # 超时时间设置为2min

def test_iecreate_timeout():
    """测试IE卡死的问题,当IE出现未响应状态时重试5次
    """
    for _ in range(5):
        try:
            # Win7+IE8下面的语句可能会导致IE未响应
            rpa.ie.create('https://www.microsoft.com/zh-cn/download/internet-explorer-11-for-windows-7-details.aspx')
            return
        except rpa.core.Au3TimeoutError: # 捕获超时异常
            print('操作超时, 原因可能是IE出现了未响应状态, 重试')
            # 初始化运行环境:
            # 境IE进入未响应状态后,所有的IE对象都将无法正常使用,这里需要清理所有的IE进程
            os.system('taskkill /f /im iexplore.exe')
    raise Exception('无法通过IE浏览器打开网页,请检查IE环境是否存在异常')

def start():
    test_iecreate_timeout()