当browser.find_element_by_xpath没有数据或无法定位元素时,如果条件不起作用

2024-10-06 07:14:29 发布

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

            if not(browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a')):
                email = 'No data'
            else:
                email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
            print(email)
  1. browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a')).get_attribute("textContent")没有数据

  2. 我写了一个条件,如果我们在提供的xpath中没有数据,它应该替换为“无数据”

  3. 如果存在数据,我们需要存储电子邮件地址,否则我们需要存储默认值(即“无数据”

  4. 这是我每次都收到的错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a"} (Session info: chrome=88.0.4324.150)


Tags: 数据divbrowseridgetbyemailattribute
1条回答
网友
1楼 · 发布于 2024-10-06 07:14:29

您可以在try/except子句中运行它

try:
    email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
except:
    email = 'No data'

您还可以使用find_elements,如果找不到元素,它将返回一个空列表。然后可以使用if语句测试列表是否为空

if browser.find_elements_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]'):
    email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
else:
    email = 'No data'

相关问题 更多 >