31-捕获异常(NoSuchElementException)

        在定位元素的时候,经常会遇到各种异常,遇到异常又该如何处理呢?本篇通过学习selenium的exceptions模块,了解异常发生的原因。

一、发生异常

        打开百度搜索首页,定位搜索框,此元素id="kw"。为了故意让它定位失败,我在元素属性后面加上xx,运行失败后如下图所示,程序在定位搜索框的这一行发生了中断,不会继续执行后续代码了。

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
element = driver.find_element('id', 'kwxx')
element.send_keys('python')
time.sleep(5)

二、捕获异常

        为了让程序继续执行,我们可以用 try...except... 捕获异常。捕获异常后可以打印出异常原因,这样以便于分析异常原因。从如下异常内容可以看出,发生异常原因是:NoSuchElementException。selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="kwxx"]"}

        从 selenium.common.exceptions 导入 NoSuchElementException 类。

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
try:
    element = driver.find_element('id', 'kwxx')
except NoSuchElementException as e:
    print("报错:{}".format(e))
else:
    element.send_keys('python')

三、selenium常见异常

NoSuchElementException:没有找到元素
NoSuchFrameException:没有找到iframe
NoSuchWindowException:没找到窗口句柄handle
NoSuchAttributeException:属性错误
NoAlertPresentException:没找到alert弹出框
ElementNotVisibleException:元素不可见
ElementNotSelectableException:元素没有被选中
TimeoutException:查找元素超时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值