Python 用While循环代替time.sleep
我必须尝试编写Python脚本,通过自动点击桌面程序来自动执行RPA,但在下一节中,它应该等待运行时。因此,我使用了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')
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”——你是在特别询问繁忙的等待吗?