>source

이 질문을 간단하게하겠습니다 : if 문이 있습니다 :

if self.driver.find_element_by_xpath('//*[contains(@id, "mission_countdown")]'):

그리고이 오류가 발생합니다 :

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(@id, "mission_countdown")]"}

이것을 왜 얻습니까? if 문을 의미합니다. 화면에 표시되는 경우

도움을 주셔서 감사합니다

  • 답변 # 1

    find_element_by_xpath  돌아올 수있다

    WebElement  (있는 경우)

    NoSuchElementException  (찾을 수없는 경우)

    if 에서 사용할 부울로 평가할 수있는 출력을 검색하는 경우 / else  차단, find_elements 를 시도 :

    if self.driver.find_elements_by_xpath('//*[contains(@id, "mission_countdown")]'):
        print('At least one element was found')
    else:
        print('No elements found')
    
    

  • 답변 # 2

    try...catch 사용  블록이 아니라면 블록을 잡을 것입니다.이 기능이 작동하는지 알려주세요.

    try:
        if self.driver.find_element_by_xpath('//*[contains(@id, "mission_countdown")]'):
            print('found')
    except:
        print('Not found')
    
    

  • 답변 # 3

    아래 코드는 예입니다. 명시 적으로 대기하고 찾으려는 오브젝트 요소로 이동합니다. try를 추가하면 요소를 찾지 못하면 예외 오류 메시지가 표시됩니다

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    #--------
    # all other code to begin scraping here
    #--------
    try:
        if self.driver.find_element_by_xpath('//*[contains(@id, "mission_countdown")]'):
           print("found this button")
        elif: 
            print("not found trying new button ")
            self.driver.find_element_by_xpath("xpath here")
    except:
        print("ERROR MESSAGE: NO ELEMENT FOUND")
    
    

    이것이 도움이되기를 바랍니다

관련 자료

  • 이전 keras - 신경망은 이진 클래스에서 하나의 클래스 만 예측합니다
  • 다음 deepsecurity - 어플라이언스로 보호되는 vms에 대한 정책 (일명 프로파일) 할당 및 활성화