Python Selenium - Try / Except не работает - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть сценарий Selenium, где я вхожу в серию веб-сайтов и получаю некоторые данные. Иногда данных не существует, и я просто хочу написать что-то вроде «Не могу найти данные» в моей строке. Текущий скрипт делает это:

#Getting "Status"
try:
    strValue = strValue + ',' + browser.find_element_by_css_selector('#visKTTabset > div.h-tab-content > div.h-tab-content-inner > div:nth-child(12) > table > tbody > tr.stripes-even > td:nth-child(3) > span').text
except webdriver.NoSuchElementException:
    StrValue = strValue + ',' + "Status not found"

Скрипт работает, когда «Состояние» действительно существует, но идентификатор не попадает в часть «кроме». В верхней части моего скрипта есть это:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException

browser = webdriver.Chrome(executable_path=r'C:\Selenium\chromedriver.exe')
browser.get('https://motorregister.skat.dk/dmr-front/dmr.portal?_nfpb=true&_nfpb=true&_pageLabel=vis_koeretoej_side&_nfls=false')
browser.implicitly_wait(10)  # Will set the global wait to 10 seconds.gnash

Я попробовал решение здесь: Попробуйте, за исключением случаев, когда в python / selenium все еще выдается ошибка NoSuchElementException , но это не сработало.

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Имена Python чувствительны к регистру, поэтому, возможно, вам нужно:

strValue = strValue + ',' + "Status not found"
0 голосов
/ 23 апреля 2019

NoSuchElementException не является частью webdriver, он является частью selenium.common.exceptions

try:
    strValue = strValue + ',' + browser.find_element_by_css_selector('#visKTTabset > div.h-tab-content > div.h-tab-content-inner > div:nth-child(12) > table > tbody > tr.stripes-even > td:nth-child(3) > span').text
except NoSuchElementException:  # without webdriver.
    StrValue = strValue + ',' + "Status not found"

И убедитесь, что strValue объявлен перед блоком try except.

Как примечание стороны, в Python strValue должно быть str_value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...