셀레니움의 is_displayed() 는 해당 요소가 화면에 보이는지를
확인하는 역할을 합니다.
화면에 보이면 True를 반환하고
화면에 보이지 않으면 False를 반환합니다.
아래 그림은 다음의 검색창입니다.
해당 부분의 [ class ]는 [ box_search ]입니다.
i = driver.find_element(By.CLASS_NAME, "box_search").is_displayed()
print(i)
위 코드를 실행하면 True가 반환됩니다.
다음은 아래 그림과 같이 [ class ]가 [ screen_out ]인 요소를 확인해 보겠습니다.
i = driver.find_element(By.CLASS_NAME, "screen_out").is_displayed()
print(i)
위 코드를 실행하면 False를 반환합니다.
즉, 해당 요소는 화면에 표시되는 요소는 아니라는 이야기입니다.
있지 않은 클래스 이름을 사용하게 되면 오류가 발생됩니다.
i = driver.find_element(By.CLASS_NAME, "sfasf2324324").is_displayed()
print(i)
이런식으로 사용하면 오류가 발생됩니다.
하나의 예를 더 들어보겠습니다.
W3Schools Online Web Tutorials
위 사이트를 예시로 보겠습니다.
위 사이트는 아래와 같이 작동합니다.
맨 위에 위와 같이 메뉴가 있습니다.
Tutorials 을 클릭하면 아래와 같이 메뉴가 추가적으로 나타납니다.
여기서 [ HTML and CSS ]를 가지고 확인해 보겠습니다.
[ HTML and CSS ] 부분의 class 이름은 [ w3-margin-top ]입니다.
※ [ w3-margin-top ]이름을 가진 클래스는 여러개가 있습니다. 첫번째로 보이는 것이 보라색 부분입니다.
driver.maximize_window()
위 코드를 추가하여 윈도우를 최대화 하고 테스트 하겠습니다.
driver.get(url)
driver.maximize_window()
time.sleep(3)
i = driver.find_element(By.CLASS_NAME, "w3-margin-top").is_displayed()
print(i)
위 코드를 실행하면 False가 반환됩니다.
하지만 [ Tutorials ]를 클릭하는 코드를 작성하고 실행하면 True가 반환됩니다.
driver.get(url)
driver.maximize_window()
time.sleep(3)
driver.find_element(By.XPATH, '//*[@id="navbtn_tutorials"]').click()
time.sleep(3)
i = driver.find_element(By.CLASS_NAME, "w3-margin-top").is_displayed()
print(i)
위 코드의 빨간색 부분이 [ Tutorials ]를 클릭하는 코드입니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ 크롤링-Selenium ] 파이썬 다음 블로그 크롤링(Python Selenium)(1) (0) | 2022.11.21 |
---|---|
[ 크롤링-Selenium ] Python Selenium get_attribute() 셀레니움 요소값 (0) | 2022.11.20 |
[ 크롤링-Selenium ] Python Selenium 입력창 초기화, 입력 내용 지우기(clear) (0) | 2022.11.18 |
[ Tkinter ] 파이썬 Tkinter 윈도우 만들기, 윈도우 위치, 윈도우 크기 조절 (0) | 2022.11.05 |
[ Basic ] 파이썬 파일 읽기, 쓰기[ open(), write() ] (1) | 2022.11.01 |