Python Selenium-Try / Except不起作用

时间:2019-04-23 08:07:04

标签: python python-3.x selenium selenium-webdriver

我有一个Selenium脚本,可以在其中输入一系列网站并获取一些数据。有时数据不存在,我只是想在字符串上写“无法找到x数据”之类的内容。当前脚本执行此操作:

#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"

该脚本在“状态”实际存在时起作用,但id不会进入“除外”部分。我的脚本顶部包含以下内容:

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

我在这里尝试了解决方案:Try except in python/selenium still throwing NoSuchElementException error,但是没有用。

2 个答案:

答案 0 :(得分:1)

Python名称区分大小写,所以也许您需要:

strValue = strValue + ',' + "Status not found"

答案 1 :(得分:0)

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