您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python Selenium异常处理的实例分析

51自学网 2021-10-30 22:53:57
  python
这篇教程Python Selenium异常处理的实例分析写得很实用,希望能帮到您。

1、说明

在使用selenium时,不可避免的会遇到一些异常情况,比如超时、没有找到节点的错误等等。一旦出现这样的错误,程序就不能再运行了。这里我们可以使用tryexcept语句来捕捉异常。

2、实例

from selenium import webdriverfrom selenium.common.exceptions import TimeoutException, NoSuchElementExceptionbrowser = webdriver.Chrome()try:  browser.get('https://www.baidu.com')except TimeoutException:  print('超时')try:  browser.find_element_by_id('aa')except NoSuchElementException:  print('未找到节点')finally:browser.close()

关于异常处理的实例扩展:

我是Python的新手,我正在尝试编写一个使用硒登录到Web应用程序并打印一些信息的nagios脚本。到目前为止,该脚本可以按预期工作,但是如果它无法检索该网站,我希望它向系统发出警报。这是我所拥有的

#!/usr/bin/env pythonimport sysfrom selenium import webdriverurl = '<main web site>'systemInformation = '<sys information site>'logout = '<log out link>'browser = webdriver.PhantomJS('<path to phantomjs for headless operation>')login_username = '<username>'login_password = '<password>'try:  browser.get(url)  username = browser.find_element_by_name("username")  password = browser.find_element_by_name("password")  username.send_keys(login_username)  password.send_keys(login_password)  link = browser.find_element_by_name('loginbutton')  link.click()  browser.get(systemInformation)  print "OK: Web Application is Running"  for element in browser.find_elements_by_name('SystemReportsForm'):    print element.text  browser.get(logout)  browser.quit()  sys.exit(0)except:  print "WARNING: Web Application is Down!"  sys.exit(2)

我希望如果第一部分失败,那么它将转到except部分,但是即使有出口,脚本也会打印出try和except。我确定这很简单,我很想念。

这就是我最终解决此问题的方式,感谢您的帮助

#!/usr/bin/env pythonimport sys, urllib2from selenium import webdriverurl = '<log in url>'systemInformation = '<sys info url>'logout = '<logout url>'browser = webdriver.PhantomJS('<phantomjs location for headless browser>')login_username = '<user>'login_password = '<password>'def login(login_url,status_url):  browser.get(login_url)  username = browser.find_element_by_name("username")  password = browser.find_element_by_name("password")  username.send_keys(login_username)  password.send_keys(login_password)  link = browser.find_element_by_name('loginbutton')  link.click()  browser.get(status_url)  if browser.title == 'Log In':    print "WARNING: Site up but Failed to login!"    browser.get(logout)    browser.quit()    sys.exit(1)  else:    print "OK: Everything Looks Good"    for element in browser.find_elements_by_name('SystemReportsForm'):      print element.text    browser.get(logout)    browser.quit()    sys.exit(0)req = urllib2.Request(url)try:  urllib2.urlopen(req)  login(url,systemInformation)except urllib2.HTTPError as e:  print('CRITICAL: Site Appears to be Down!')  browser.get(logout)  browser.quit()  sys.exit(2)

解决方案

sys.exit([status])引发SystemExit(status)异常,这就是执行except子句的原因

通过提高SystemExit(status)退出解释器。如果省略状态或无,则默认为零(即成功)。如果状态为整数,则将其用作系统退出状态。如果是另一种对象,则将其打印出来,并且系统退出状态将为1(即失败)。

删除sys.exit(0)内部try

到此这篇关于Python Selenium异常处理的实例分析的文章就介绍到这了,更多相关Python Selenium异常处理内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python常量折叠基础知识点讲解
Python Selenium操作Cookie的实例方法
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。