2016-09-18 10 views
1

내가 잘못하고있는 것을 알 수 없습니다. 코드는 오랫동안 findall 표시 이미지가 위대한 작품,하지만 x이 표시되지 않는 경우, 다음 오류가 발생합니다 :이미지가 종료되지 않으면 오류없이 getall 및 clickall 사용

[error] FindFailed (can not find P(1474201252795.png) S: 0.99 in R[0,0 1920x1080]@S(0))

이 문제를 해결하는 방법을 아주 확실하지. 문서 findAll 당으로

running = True 

def runHotkey(event): 
    global running 
    running = False 

Env.addHotkey(Key.F1, KeyModifier.CTRL, runHotkey) 

while exists("1474199877323.png")and running: 

    click("1474138615993.png") 
    click("1474138629993.png") 
    wait(5) 
    if exists("1474201633804.png"): 
     for x in findAll(Pattern("1474201252795.png").exact()): 
      click(x) 
      click("1474201809505.png")  
    else: 
     click("1474201689791.png") 
    wait(5) 

답변

0

실패 검색에서 예외가 발생합니다. (docs). 컨텍스트 관리자와 함께 hasNext() 방법을 사용해보십시오.

with findAll(Pattern(...)) as mm: 
    while mm.hasNext(): 
     x = mm.next() 
     // process x 
0

사용/캐치

private boolean exists(Pattern img, int sec) { 
     try { 
      window.wait(img, sec); 
      return true; 
     } catch (FindFailed exception) { 
      return false; 
     } 

    } 
0

오류를 방지하는 또 다른 방법 이미지가 findall은 사용하기 전에 존재 여부를 확인하는 것입니다보십시오

if exists("image_in_findAll.png"): 
    for x in findAll("image.png"): 
     ...