Selenium 如何处理不存在的DIV标签。使用硒及;python

Selenium 如何处理不存在的DIV标签。使用硒及;python,selenium,automation,python-3.8,Selenium,Automation,Python 3.8,我正试图借助selenium和python从这个容器“PROJECT information”//www.rera.mp.gov.in/view_PROJECT_details.php?id=adryyk82l2hhv0r0whfdsnjrk3fyz09”中提取信息 但是当我这么做的时候,我得到了这个错误 找不到元素: {“方法”:“xpath”,“选择器”:/html/body/div/article/div/div/div/div} 在研究它之后,我发现这个突出显示的div丢失了,在这个容器

我正试图借助selenium和python从这个容器“PROJECT information”//www.rera.mp.gov.in/view_PROJECT_details.php?id=adryyk82l2hhv0r0whfdsnjrk3fyz09”中提取信息 但是当我这么做的时候,我得到了这个错误

找不到元素: {“方法”:“xpath”,“选择器”:/html/body/div/article/div/div/div/div}

在研究它之后,我发现这个突出显示的div丢失了,在这个容器中有很多地方div丢失了。我该怎么做?我只想从桌子的右边得到信息

我的代码:

for c in [c for c in range(1, 13) if (c == True)]:            

    row = driver.find_element_by_xpath("/html/body/div/article/div[2]/div/div[2]/div["+ str(c) +"]/div[2]").text

    print(row, end="   ")
    print("     ")
else:
    print('NoN')
no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/article/div[2]/div/div[2]/div[2]/div[2]"}
  (Session info: chrome=83.0.4103.106)
错误:

for c in [c for c in range(1, 13) if (c == True)]:            

    row = driver.find_element_by_xpath("/html/body/div/article/div[2]/div/div[2]/div["+ str(c) +"]/div[2]").text

    print(row, end="   ")
    print("     ")
else:
    print('NoN')
no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/article/div[2]/div/div[2]/div[2]/div[2]"}
  (Session info: chrome=83.0.4103.106)

突出显示的字段是两种不同的情况。对于“注册号”,所需的
div
不存在,而对于“拟定结束日期”,它存在,但只包含空格

试试这个,而不是c的
循环。它应该处理这两种情况

#find parent element
proj_info=driver.find_element_by_xpath("//div[@class='col-md-12 box']")

#find all rows in parent element
proj_info_rows = proj_info.find_elements_by_class_name('row')

for row in proj_info_rows:
    try:
        if row.find_element_by_class_name('col-md-8').text.strip() == "":
            print(f"{row.find_element_by_class_name('col-md-4').text} contains only whitespace {row.find_element_by_class_name('col-md-8').text}")
            print('NaN')
        else:
            print(row.find_element_by_class_name('col-md-8').text)
    except SE.NoSuchElementException:
        print('NaN')
您需要此导入:

from selenium.common import exceptions as SE

忘记了添加导入。