>

Sikuli에는 작업을 복사하여 붙여 넣는 다음 코드가 있습니다. caption.png가 없을 때 "존재하지 않는 경우"안에있는 액션을 실행하고 싶지만 때로는없는 경우에도 여전히 찾으려고 시도하고 "캡션을 찾을 수 없습니다"라는 오류를 반환합니다. png "입니다.

    for idx in range(1, 77):
         if not exists("caption.png"):
              click("1406907972716.png")
              type(Key.PAGE_DOWN)        
              print "skip" + str(idx)
         else: 
              click("caption.png")
              type(Key.F2)
              type("a", KeyModifier.CTRL)
              type("c", KeyModifier.CTRL)
              click("CLICKBOX-4.PNG")
              click("BOX2-4.PNG")
              type("a", KeyModifier.CTRL)
              type(Key.DELETE)
              type("v", KeyModifier.CTRL)
              type(str(idx))
              type(Key.HOME)
              for i in range(25):
                  type(Key.DELETE)
              click("1406907972716.png")
              type(Key.PAGE_DOWN)

다음을 시도했는데 효과가 있었지만 제대로 작동하지 않는 경우가 있습니다. 때로는 idx 하나를 임의로 건너 뜁니다. 이유를 알 수 없음 :

   for idx in range(1, 77):
        if not exists("caption.png"):
            click("1406907972716.png")
            type(Key.PAGE_DOWN)        
            print "skip" + str(idx)
        else: 
            if exists("caption.png"):
                click("caption.png")
                type(Key.F2)
                type("a", KeyModifier.CTRL)
                type("c", KeyModifier.CTRL)
                click("CLICKBOX-4.PNG")
                click("BOX2-4.PNG")
                type("a", KeyModifier.CTRL)
                type(Key.DELETE)
                type("v", KeyModifier.CTRL)
                type(str(idx))
                type(Key.HOME)
                for i in range(25):
                    type(Key.DELETE)
                click("1406907972716.png")
                type(Key.PAGE_DOWN)


  • 답변 # 1

    식리 IDE에서 이것을 시도하고 있습니까? 문제는 항상 좋은 역 추적이 제공되지는 않는다는 것입니다.

    두 번째 예에서는 캡션을 찾을 수 없으므로 아무 것도 실행하지 않고 다음 반복으로 건너 뛰기 때문에 인덱스를 완전히 건너 뛰는 것 같습니다. 모든 코드가 이미 존재하는 것으로 확인 된 것을 다시 확인하는 if 블록 내에 있기 때문에 출력없이 반복을 건너 뜁니다.

    첫 번째 부분의 문제는 당신이 경기를 찾지 못하고 click() 에서 실패한다는 것입니다.  전화 (그리고 추적은 도움이되지 않습니다). 와이즈 비즈  일치를 리턴하고 exists() 의 값도 설정합니다. . getLastMatch() 가 리턴 한 일치로 로컬 변수를 설정해 볼 수 있습니다.  또는 exists() 를 사용하는 else 절에서  찾은 해당 지역 (아마 "caption.png")을 클릭하십시오.

    getLastMatch().click() 에서 대기 시간을 지정할 수도 있습니다.  선.

    마지막으로 각 이미지를 패턴으로 설정하고 유사성을 사용하여 결과를 하나의 단일 일치로 파싱 할 수 있습니다.

    스크린 샷이나 스크린에있는 이미지와 스크린에있을 수있는 이미지 수에 대한 정보없이 스크린 샷없이 명확한 대답을하기는 어렵습니다. 아직 댓글을 달 수 없지만 더 많은 정보를 제공 할 수 있으면보다 구체적인 답변을 포함하도록이 답변을 편집 할 수 있습니다.

    exists()

관련 자료

  • 이전 openssl - PFX 파일 생성 중에 cert 파일의 모든 계층 구조를 포함하지 않으면 어떻게됩니까?
  • 다음 C #의 SQL 내부 조인 문