인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김희수님의 프로필 이미지
김희수

작성한 질문수

[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발

휴대폰 화면에 나타난 요소를 검사하는 라이브러리를 사용해봅시다

핸드폰으로 자동 클릭안됩니다.

작성

·

209

0

code:

import time, random
import data
import uiautomator2 as u2

serial = "********"
device = u2.connect(serial)

device(resourceId="com.instagram.android:id/row_feed_button_like").click()

실행 시 오류

 

C:\Users\user\AppData\Local\Programs\Python\Python310\python.exe C:/Users/user/Desktop/pythonProject1/insta/momobiletest.py

Traceback (most recent call last):

File "C:\Users\user\Desktop\pythonProject1\insta\momobiletest.py", line 8, in <module>

device(resourceId="com.instagram.android:id/row_feed_button_like").click()

File "C:\Users\user\AppData\Roaming\Python\Python310\site-packages\uiautomator2\_selector.py", line 149, in click

self.must_wait(timeout=timeout)

File "C:\Users\user\AppData\Roaming\Python\Python310\site-packages\uiautomator2\_selector.py", line 344, in must_wait

raise UiObjectNotFoundError({'code': -32002, 'data': str(self.selector), 'method': 'wait'})

uiautomator2.exceptions.UiObjectNotFoundError: {'code': -32002, 'data': "Selector [resourceId='com.instagram.android:id/row_feed_button_like']", 'method': 'wait'}

 

 

uiautomator2 버전은 3.0.10 
adbutils 버전은 2.6.2

 

왜 계속 오류가 뜨고 안되는지 모르겠습니다.

답변 2

0

김지유님의 프로필 이미지
김지유
지식공유자

com.instagram.android:id/row_feed_button_like 버튼 resourceId 을 찾지 못해 발생한 에러입니다

휴대폰에 ATX 이름의 택시 모양 아이콘 어플리케이션이 설치되어 있는 상태일까요?

0

안녕하세요, 인프런 AI 인턴입니다.

제공한 오류 메시지를 보면, uiautomator2.exceptions.UiObjectNotFoundError 오류가 발생했다는 것을 알려줍니다. 이 오류는 지정한 resourceId를 가진 객체를 찾을 수 없을 때 발생합니다. 여기에서는 "com.instagram.android:id/row_feed_button_like"에 해당하는 객체를 찾을 수 없어서 이 문제가 발생한 것으로 보입니다.

원인과 해결 방안에 대해 몇 가지 제안드립니다:

  1. 인스타그램 앱이 최신 버전인지 확인해주세요. 앱이 업데이트되면서 resourceId가 변경되었을 가능성이 있습니다.

  2. 테스트 중인 핸드폰에 인스타그램 앱이 정상적으로 실행되고 있는지 확인해주세요.

  3. UI Automator Viewer 같은 도구를 사용하여 실제 인스타그램 앱에서 ‘좋아요’ 버튼의 현재 resourceId를 확인할 수 있습니다. 이 도구는 안드로이드 SDK에 포함되어 있으며, resourceId가 변경되었을 수 있으니, 현재 resourceId로 스크립트를 업데이트해야 할 수 있습니다.

  4. 때로는 특정 화면 또는 상태에 있을 때만 원하는 UI 요소가 나타날 수 있습니다. 따라서 click() 메소드를 호출하기 전에 앱이 올바른 상태에 있는지 확인하세요.

해결 방법을 시도한 후에도 문제가 지속되면 사용 중인 모듈의 버전이나, 코드의 다른 부분에서 문제가 발생했을 수도 있습니다. 관련해서 추가적인 로그나 상세 정보를 제공해주시면 더 구체적인 도움을 드릴 수 있을 것 같습니다.

김희수님의 프로필 이미지
김희수

작성한 질문수

질문하기