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

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中没有数据,则应将其替换为“ no data”。

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

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

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // div [@ id =” MainCopy_ctl13_presentJob_EmailAddressPanel“] // a”}(会话信息:chrome = 88.0.4324.150)

解决方案


您可以在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'

来源:如果当browser.find_element_by_xpath没有数据或无法找到元素时条件不起作用-python黑洞网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值