Python Selenium按\ id查找\元素\如果未找到,则使用默认值

2024-10-02 10:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过id在页面上找到一个元素。问题是这个元素只是临时的,不会一直存在。因此,我想设置默认值,以便在条件中检查它,如:

    covidPopUp = driver.find_element_by_id("sgpb-popup-dialog-main- 
    div").extract(default='not-found')

    if(covidPopUp == 'not-found'):
        load_more_btn = driver.find_element_by_id("load_more_button")
        load_more_btn.click()
    else:
        popUpClose = driver.find_element_by_id("sgpb-popup-close-button-6")
        popUpClose.click()

但是,这会产生以下错误:

AttributeError: 'WebElement' object has no attribute 'extract'

Tags: id元素bymoredrivernotextractload
1条回答
网友
1楼 · 发布于 2024-10-02 10:24:43

我想你有两个选择

  1. 使用^{}但捕获异常
from selenium.common.exceptions import NoSuchElementException
try:
    covidPopUp = driver.find_element_by_id("sgpb-popup-dialog-main-div")
except NoSuchElementException:
    covidPopUp = "not-found"
  1. 使用^{}(注意复数形式)并检查列表是否为空
covidPopUp = driver.find_elements_by_id("sgpb-popup-dialog-main-div")
covidPopUp = covidPopUp[0] if covidPopUp else "not-found"

相关问题 更多 >

    热门问题