-
Selenium의 목록 인 경우 모달 창을 어떻게 열 수 있습니까?카테고리 없음 2020. 8. 20. 21:51
질문
Selenium을 사용하여 모달 창을 여는 데 문제가 있습니다.이 페이지
https://buggy-testingcup.pgs-soft.com/task_1
에는 Treść zadania 링크가 있습니다. 이것을 클릭하면 Task 설명과 함께 모달 창을 볼 수 있습니다.<nav class="navbar navbar-fixed-top navbar-inverse"> <div class="container helpers"> <div class="col-sm-10 col-md-10"> <span class="open-details">Treść zadania</span> | <span id="main-reset">Resetuj dane</span> </div> <div class="col-sm-2 col-md-2"> </div> </div> </nav>
보시다시피 open-detail class가 있으므로
find_elements_by_class_name ( 'open-details')
으로 시도했지만 xpath 및 텍스트 링크로도 시도했지만 항상 얻습니다.AttributeError : [0]과 함께 사용할 때 'NoneType'객체에 'click'속성이 없습니다.
또는AttributeError: 'list' object has no attribute 'click'
누군가이 모달을 여는 방법을 설명해 줄 수 있습니까? 내 테스트에는 필요하지 않지만 궁금합니다.
답변1
find_elements_by_class_name ( 'open-details')
는 웹 요소가 아닌 목록으로 반환됩니다.find_element_by_class_name ( 'open-details')
로 연결합니다.CSS 선택자를 사용하는 것이 좋습니다.
driver.find_element_by_css_selector(".open-details").click()
WebDriverWait
()를 유도하고element_to_be_clickable
()을 기다린 후 클릭합니다.WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,".open-details"))).click()
라이브러리를 가져와야합니다.
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
출처 : https://stackoverflow.com/questions/61250058/how-can-i-open-modal-window-if-its-a-list-in-selenium