Python 用While循环代替time.sleep

Python 用While循环代替time.sleep,python,python-3.8,Python,Python 3.8,我必须尝试编写Python脚本,通过自动点击桌面程序来自动执行RPA,但在下一节中,它应该等待运行时。因此,我使用了time.sleep(),但我认为这不是一个好方法。这使得我的进程运行缓慢,有时time.sleep()不够 这是我的密码 ######## USERNAME & PASSWORD ######## def personal_id(username,password): pg.hotkey('ctrl','a') pg.press('backspace')

我必须尝试编写Python脚本,通过自动点击桌面程序来自动执行RPA,但在下一节中,它应该等待运行时。因此,我使用了
time.sleep()
,但我认为这不是一个好方法。这使得我的进程运行缓慢,有时
time.sleep()
不够

这是我的密码

######## USERNAME & PASSWORD ########
def personal_id(username,password):
    pg.hotkey('ctrl','a')
    pg.press('backspace')
    pg.write(username,interval=0.2)
    pg.press('tab')
    pg.write(password,interval=0.2)

################## Access APP ############################

def screenshot():
    im1 = np.array(pg.screenshot('desktop.jpg'))
    print(im1)
    return im1

def clickAmos_logo(temp='template1.jpg'):
    time.sleep(2)
    img1 = screenshot()


    img_temp1 = cv2.imread(temp)
    template1 = cv2.cvtColor(img_temp1, cv2.COLOR_BGR2GRAY) # convert to gray scale
    loginpage = cv2.imread('desktop.jpg',cv2.IMREAD_GRAYSCALE)
    result1 = cv2.matchTemplate(template1,loginpage, cv2.TM_CCOEFF_NORMED)

    #print(result1)

    loc = np.where(result1 >=0.9) # 0.9 

    #print(loc)

    position = []

    for pt in zip(*loc):
        #print(pt)
        pos = (pt[1]+10,pt[0]+10) # pos = (371,24)  # for Windows
        #pos = ((pt[1]/2) +10,(pt[0]/2)+10)         # for Mac
        position.append(pos)

    print(position)
    pg.click(position[0])

    clickAmos_logo('applogo.png')

# Enter to app

    pg.press('enter')
    time.sleep(6)

################ LOGIN ID ##################################

def screenshot_id():
    fortypeid = np.array(pg.screenshot('for_type_id.jpg'))
    print(fortypeid)
    return fortypeid

def type_username(temp='template_forid.jpg'):
    time.sleep(2)
    fortypeid_capture = screenshot_id()

img_temp_id = cv2.imread(temp)
template_id = cv2.cvtColor(img_temp_id, cv2.COLOR_BGR2GRAY) # convert to gray scale
loginpage_2 = cv2.imread('for_type_id.jpg',cv2.IMREAD_GRAYSCALE)
result_id = cv2.matchTemplate(template_id,loginpage_2, cv2.TM_CCOEFF_NORMED)

#print(result1)

loc = np.where(result_id >=0.9) # 0.9 เปอร์เซ็นความเหมือน

#print(loc)

position_id = []

for pt in zip(*loc):
    #print(pt)
    pos = (pt[1]+10,pt[0]+10) # pos = (371,24)  # for Windows
    #pos = ((pt[1]/2) +10,(pt[0]/2)+10)         # for Mac
    position_id.append(pos)

print(position_id)
pg.click(position_id[0])
pg.moveRel(30,50,duration=0.25)
pg.click()
personal_id('kkk','123')

#cv2.imshow('img',img_temp)
#cv2.waitKey(0)
#cv2.destroyAllWindows()

type_username('goto_login_id.png')

你能说明你想达到什么目的吗?“它应该等待运行时”是什么意思?您等待的事件或情况是否可检测?为什么标题中提到“while loop而不是time.sleep”——你是在特别询问繁忙的等待吗?