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

한준규님의 프로필 이미지
한준규

작성한 질문수

파이썬 레시피 - 웹 활용 입문편 (전자책 포함)

[웹 자동화] 3. 50까지 클릭하기

http://zzzscore.com/memory/ 에 적용했을 때,

작성

·

1.1K

2

from selenium import webdriver
import time

driver = webdriver.Chrome('chromedriver')
driver.get('http://zzzscore.com/memory/')
driver.implicitly_wait(300)

time.sleep(5)

btns=driver.find_element_by_xpath('//*[@id="grid"]/div[*]')
print(len(btns))

해당 게임 사이트에 기억력/순발력 테스트가 있길래 배운내용을 적용해보려고 했습니다.

1to50과 같이 xpath가 같은 형식이고 div태그 안에 내용이 있길래 저렇게 코드를 짰는데요.

btns에 제대로 내용이 안담기는 것 같습니다.

Traceback (most recent call last):
  File "C:/Users/user/Desktop/hotch/02 selenium/fast.py", line 11, in <module>
    print(len(btns))
TypeError: object of type 'WebElement' has no len()

이렇게 에러가 뜨네요.

혹시 가능하시다면 해당 페이지의 버튼을 가져오는 방법을 가르쳐주실수 있으신가요?

답변 2

1

한준규님의 프로필 이미지
한준규
질문자

.find_elements_by_xpah에서 해당 xpath를 모두 추출하기위해서 s를 붙였어야하는데 빠트렸네요.. 감사합니다!

1

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

어 저같은 경우에는 위에 올려주신 xpath로 잡혔습니다. 제가 테스트한 코드를 공유해드릴게요.

저는 출력결과가 16으로 나왔습니다.

from selenium import webdriver

driver = webdriver.Chrome('chromedriver')
driver.get('http://zzzscore.com/memory/')
driver.implicitly_wait(300)

def clickBtn():
    btns = driver.find_elements_by_xpath('//*[@id="grid"]/div[*]')
    print(len(btns))

clickBtn()
한준규님의 프로필 이미지
한준규

작성한 질문수

질문하기