2016-02-26 2 views
0

Я использую Python Selenium, чтобы открыть URL-адрес из списка и найти определенный элемент. как так ...Сбой Python Selenium, когда элемент не найден

driver.get('http://www.example.com.com/') 
inputElement = driver.find_element_by_id("my-field") 

Если элемент существует, то все работает отлично, но если элемент не может быть найден, то скрипт падает с собственной ошибки ...

Unable to locate element: 

Является ли это правильно и есть ли способ справиться с этим, вместо того, чтобы рушиться?

+0

Вы можете добавить [Wait] (http://selenium-python.readthedocs.org/waits.html) на самом деле убедитесь, что элемент не существует. – JRodDynamite

ответ

1

Да, это так. Из документов:

... С помощью этой стратегии, первый элемент с идентификатором значение атрибута Сопрягать место будет возвращено. Если ни один элемент не имеет соответствующего атрибута , будет вызвано исключение NoSuchElementException.

И, конечно, исключение можно было бы уловить (как упоминалось в другом ответе).

Вы можете найти документы здесь: http://selenium-python.readthedocs.org/locating-elements.html#locating-by-id

6

Это правильное поведение.

Вы можете поймать исключение, как вы можете любое исключение:

from selenium.common.exceptions import NoSuchElementException 
... 
try: 
    driver.get('http://www.example.com.com/') 
    inputElement = driver.find_element_by_id("my-field") 
except NoSuchElementException: 
    print("couldn't find the element") 
Смежные вопросы