2017-02-22 2 views
0

В основном я делаю некоторые веб-соскабливания с селеном и должен определять переменную как одно, если ошибка не возникает, или что-то еще, если произошла ошибка.Python: Как определить переменную на основе ошибки или нет?

Отрывок:

try: 
     raw_cc_timeframe = driver.find_element_by_xpath("//*[@id='nearbyStore']/div/div/div/div/div/div/ul/li[1]/div[1]/p") 
     cc_timeframe = raw_cc_timeframe.text 
    except NoSuchElementException: 
     cc_timeframe = "" 

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

Я продолжаю получать unboundlocalerror и действительно не могу понять, почему, несмотря на чтение многочисленных сообщений.

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

Я довольно новичок во всем этом, поэтому любая помощь будет высоко оценена.

+1

Возможный дубликат [UnboundLocalError в Python] (http://stackoverflow.com/questions/9264763/unboundlocalerror -in-python) –

+0

Пожалуйста, отредактируйте ваше сообщение, чтобы показать свой полный код, он не принадлежит к ответу. – SiHa

ответ

0

Try установка cc_timeframe="" перед выполнением поиска и использования pass как ответ на не нашли исключения

try: 
    cc_timeframe = "" 
    raw_cc_timeframe = driver.find_element_by_xpath("//*[@id='nearbyStore']/div/div/div/div/div/div/ul/li[1]/div[1]/p") 
    cc_timeframe = raw_cc_timeframe.text 
except NoSuchElementException: 
    pass 
+0

Спасибо за быстрый ответ. Итак, теперь я получаю сообщение об имени, когда пытаюсь распечатать cc_timeframe. – user5847481

+1

Попробуйте установить его как «bob» и запустите, пожалуйста, похоже, что у вас что-то еще происходит. Я предположил, что вы все еще объявили его глобальным, попробуйте с этим вариантом и без него – CJC

+0

Пожалуйста, найдите полную функцию ниже – user5847481

Смежные вопросы