Completion over Perfection

Python(파이썬)으로 1to50 게임 2초대 기록하기 (2) 본문

파이썬 (Python)

Python(파이썬)으로 1to50 게임 2초대 기록하기 (2)

난차차 2020. 5. 4. 13:02
반응형

Python(파이썬)으로 1to50 게임 2초대 기록하기 (2)

 

지난 글에서 1부터 50까지 빨리 누르기 게임을 2초대에 기록했다고 말씀을 드렸었는데요, 

 

지난글 보러가기 : Python(파이썬)으로 1to50 게임 2초대 기록하기 (1)

 

페이지를 뜯어서 보다 보니 다음과 같은 규칙성이 있었습니다. 

 

눌러야 하는 숫자들은 모두 div > style="opacity: 1;" 태그 안에 들어가 있었다.

1번과 2번을 예시로 설명을 드려보겠습니다. 

 

1번과 2번을 자세히 뜯어보았다

 

1번 숫자의 경우에는, 태그명이 다음과 같습니다. 

<span class="box" style="z-index:99"></span>

 

그리고 2번 숫자의 태그명은 아래와 같죠.

<span class="box" style="z-index:98"></span>

 

눈치 채셨겠지만, z-index: 다음에 부여된 값에 따라 숫자가 1부터 50까지 정해져 있었습니다.

 

  - 1번 : z-index:99

  - 2번 : z-index:98

  - 3번 : z-index:97

            .
            .

            .

 

이런식으로 z-index 값이 정해져 있었습니다.

페이지 새로고침을 눌러도요.

 

이걸 알아냈다면, 이제 해야될일은 하나죠. 

 

z-index 값에 넣을 변수(전 num으로 만들었습니다)를 하나 생성해서 거기에 초기 값을 99를 넣은다음에, 

숫자를 하나 클릭해주고 num을 -1한 값을 다시 넣고, 다시 클릭해주고.. 이런식으로 구현을 하면 될 것 같습니다. 

 

실제로 해봤더니 잘 작동합니다. 

아래는 제가 작성한 코드입니다. 

 

indexlist = [] → 클릭할 element를 넣어줄 리스트를 생성한다.

num = 99 → 초기값을 99로 넣어준다.
for j in range(2): → for문을 2번 돈다. (1부터 25 다 클릭하고 나서 26부터 50까지)

    for i in range(25): → 1부터 25 또는 26부터 50까지 클릭하겠다.
        indexlist.append(driver.find_element_by_css_selector('span[style="z-index:{}"]'.format(num)))
        num-=1
    for i in range(25):

        indexlist[i].click() → 리스트에 있는 애들을 하나씩 꺼내서 클릭해라
    indexlist = [] → 1~25 클릭이 끝난 뒤 26~50 element를 클릭하기 위해 리스트 초기화

 

Chrome headless로 하면 미세하게나마 기록이 나아지긴 했지만, 큰 차이는 없었습니다. (0.2~0.3초 정도 빨라짐)

 

그럼 이만 포스팅을 마칠게요~

반응형
Comments