vscode에서 options.add_experimental_option('detach', True) 안먹힘
vscode 에디터 상에서 파이썬 코드를 실행시킬 때 Control + F5를 눌러 실행시켰던게 문제였습니다.
에디터 우측 상단에 화살표를 누르니 정상작동되었습니다. 왜 작동되었는지는 이후 추가할 예정입니다.
매크로 동기 문제
driver.find_element(By.ID, "id").send_keys("id")
driver.find_element(By.ID, "pass").send_keys("password")
driver.find_element(By.XPATH, "로그인 버튼").click()
try:
alert = Alert(driver) # 로그인 인증 확인 alert 클릭
alert.accept()
except:
pass
driver.find_element(By.XPATH, "이후 버튼 클릭").click()
로그인까지 잘 됐는데 다음 element click이 안되길래 조금 의아했었는데 이후 바로 동기 문제임을 느꼈습니다.
로그인을 시도하고 응답이 아직 도착하지 않았는데 아래 try catch문에서 alert가 없기 때문에 pass 한 뒤 이후 바로 다음 버튼 클릭을 시도했다는 것이었습니다. 이후 로그인 응답 이후에 바로 alert 확인을 클릭할 수 있도록 응답을 가져올 때까지 대기할 수 있는지 찾아봤지만 아직 해결하진 못했습니다. 차후에 찾아 정리할 예정입니다.
우선 임시적으로 time을 사용하여 일정시간 대기한 뒤 실행할 수 있도록 사용하였습니다
임시 해결
driver.find_element(By.ID, "id").send_keys("id")
driver.find_element(By.ID, "pass").send_keys("password")
driver.find_element(By.XPATH, "로그인 버튼").click()
try:
time.sleep(0.5)
alert = Alert(driver) # 로그인 인증 확인 alert 클릭
alert.accept()
except:
pass
driver.find_element(By.XPATH, "이후 버튼 클릭").click()
만약 로그인이 실패했을 때 재로그인을 시도하던지 에러를 보여줘야 하기 때문에 그에 대한 방법까지 정리할 예정입니다
'TIL > 트러블슈팅' 카테고리의 다른 글
js object 접근 방식 (0) | 2022.10.02 |
---|---|
React-query에 캐싱된 데이터 업데이트하기 (0) | 2022.09.29 |
react-query 조건에 따라 캐싱 데이터 refetch 구현 (0) | 2022.08.15 |
SSG 도입하기 / getStaticPaths, getStaticProps (0) | 2022.07.07 |
타입을 어떻게 선언해야할까 (0) | 2022.07.05 |