이상한 MYPI

이상한
접속 : 6449   Lv. 110

Category

Profile

Counter

  • 오늘 : 99 명
  • 전체 : 8000942 명
  • Mypi Ver. 0.3.1 β
[공부 - PG] 퀴즈 답을 몰라서 써본 Selenium (1) 2020/09/14 PM 08:45

Selenium 이란 기본적으로 자바스크립트 테스트를 위해 만들어진 라이브러리 라고 하면 가장 간단한 설명일려나;;;


전에 테스트로 이거 기록물만 저장해서 납품 한적있는데... 절대로 잘 못 된 테스트였다는 생각이 듬..




01.jpg

○○○りの

○○○!


○○○에 들어갈 답을 찾는 문제 입니다..


 

02.jpg


"일러스트에 있는 손가락이 뭐를 하고 있나요.... 3글자로...."

 

힌트를 보고도 답이 안나왔음.. 다른 퀴즈를 다 풀고도

이것만 하루 종일 고민해도 내 일본어로는 무리 라고 생각들어서 다른 방법을 찾아봤습니다...


 

 

 

03.jpg

컴퓨터 브라우져로 들어가 보니 스마트폰 전용 페이지라고 뜸(뭐 이건 옵션 조정하면 바로 풀리고)


페이지 소스를 뒤져서 답을 찾아봤지만... 답은 내가 못찾은 건지 암호화 되어 있었는지 찾다가 포기 했음....


아무리 월급 루팡 중이라도 이거 분석 할 시간은 없어서 또 다른 방법 찾았습니다..


(정답 처리는 송신 버튼을 눌려도 느려진 적 없는거 보니 스크립트로만 한거 같음...)


 



생각해 본건 무한 대입법


あああ 부터 んんん 까지 다 넣어보기...

 

손으로 하는건 답이 없으니 당연히 Selenium으로 자동화 처리...



환경 : 리눅스(우분투)

언어 : 파이썬3

라이브러리 : Selenium(파이어폭스)

 

소스 단순 정리


#인클루드

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from time import sleep
import logging

#로그 출력

logging.basicConfig(level=logging.DEBUG, filename="test.log", format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')

#모바일 페이지용 세팅
user_agent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"

textElement = [
    'あ',.... # 생략 일본어


#페이지 출력용

profile = webdriver.FirefoxProfile()
profile.set_preference('general.useragent.override', user_agent)
driver = webdriver.Firefox(profile)
driver.set_window_size(360,900)
driver.get('https://cp.zone-energy.jp/nazo/quiz/12')

for textE1 in textElement:
    for textE2 in textElement:
        for textE3 in textElement:

            textValue = textE1 + textE2 + textE3

            driver.find_element_by_class_name('-nput-main').send_keys(textValue)
            driver.find_element_by_class_name('-nput-submit').click()

            loopEnd = False
            try:
                driver.find_element_by_class_name('quizclear')
                judgeText = 'SUCCESS'
                loopEnd = True
            except:
                judgeText = 'FAIL'

            logText = textValue + ' : ' + judgeText
            print(logText)
            logging.info(logText)

            #driver.quit()

            sleep(1)
            if loopEnd:
                break
        if loopEnd:
             break
    if loopEnd:
        break
driver.quit()


대충 이런식으로 한 다음


돌리고 잠을 잤습니다...




컴퓨터 켜고 자서 푹 못 자고 5시간만에 일어났는데

 

첫글짜 あ도 안끝났음...ㅋㅋㅋㅋㅋ


탁음 반탁음 야유요 다 합쳐서 105글짜 인데...


초당 1번 테스트가 가능하기 때문에 총 예상 시간


105 × 105 × 105 ÷ 60 ÷ 60 = 321.5625시간이 걸리는 작업


 


이걸로 답이 안나오니 동시에 여러개 테스트 가능 하다는걸 확인했기 때문에...


첫글자를 쪼개서 테스트 실행.....


뭐... 결론은 이걸로 답을 찾았습니다....




문제는 이게 중요한건 아니고


제 사양으로 50개는 동시 실행 불가능 하고


30개는 돌아갔습니다...

 

답을 찾았기 때문에 귀찮아서

 

40개는 테스트 안해봤습니다..




04.jpg

 

 


05.jpg

 

 

 

06.jpg

 

 루리웹에서 할 사람은 없을테니까 위 문제 답은


たっぷ 입니다...


말장난 일거는 예상했지만.. 찾고 나니 더 어처구니 없음...

신고

 

(UNO    친구신청

selenim 정겹군요
여기에 능력자가 계시다니 친하게지내고싶습니다
X