这篇文章主要介绍了如何在Python中使用Selenium对异常进行处理,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!
python是什么意思
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
实例
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对异常进行处理,如何觉得编程网网站的内容还不错,欢迎将编程网网站推荐给身边好友。