Python Selenium異常處理的實例分析
1、說明
在使用selenium時,不可避免的會遇到一些異常情況,比如超時、沒有找到節(jié)點的錯誤等等。一旦出現這樣的錯誤,程序就不能再運行了。這里我們可以使用tryexcept語句來捕捉異常。
2、實例
from selenium import webdriver
from selenium.common.exceptions import TimeoutException, NoSuchElementException
browser = webdriver.Chrome()
try:
browser.get('https://www.baidu.com')
except TimeoutException:
print('超時')
try:
browser.find_element_by_id('aa')
except NoSuchElementException:
print('未找到節(jié)點')
finally:
browser.close()
關于異常處理的實例擴展:
我是Python的新手,我正在嘗試編寫一個使用硒登錄到Web應用程序并打印一些信息的nagios腳本。到目前為止,該腳本可以按預期工作,但是如果它無法檢索該網站,我希望它向系統(tǒng)發(fā)出警報。這是我所擁有的
#!/usr/bin/env python
import sys
from selenium import webdriver
url = '<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 python
import sys, urllib2
from selenium import webdriver
url = '<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])引發(fā)SystemExit(status)異常,這就是執(zhí)行except子句的原因
通過提高SystemExit(status)退出解釋器。如果省略狀態(tài)或無,則默認為零(即成功)。如果狀態(tài)為整數,則將其用作系統(tǒng)退出狀態(tài)。如果是另一種對象,則將其打印出來,并且系統(tǒng)退出狀態(tài)將為1(即失敗)。
刪除sys.exit(0)內部try
到此這篇關于Python Selenium異常處理的實例分析的文章就介紹到這了,更多相關Python Selenium異常處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python爬蟲入門教程--利用requests構建知乎API(三)
這篇文章主要給大家介紹了關于python爬蟲入門之利用requests構建知乎API的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
如何使用?Python為你的在線會議創(chuàng)建一個假的攝像頭
這篇文章主要介紹了使用?Python為你的在線會議創(chuàng)建一個假的攝像頭,在?Python?的幫助下,不再強制開啟攝像頭,將向你展示如何為你的在線會議創(chuàng)建一個假的攝像頭,需要的朋友可以參考下2022-08-08
詳解Anconda環(huán)境下載python包的教程(圖形界面+命令行+pycharm安裝)
這篇文章主要介紹了Anconda環(huán)境下載python包的教程(圖形界面+命令行+pycharm安裝),這篇文章很適合小白入手級別的,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
Python學習筆記基本數據結構之序列類型list tuple range用法分析
這篇文章主要介紹了Python學習筆記基本數據結構之序列類型list tuple range用法,結合具體實例形式分析了Python序列類型list tuple range基本概念、定義與使用技巧,需要的朋友可以參考下2019-06-06
在Python的Django框架中實現Hacker News的一些功能
這篇文章主要介紹了在Python的Django框架中實現Hacker News的一些功能,包括投票“頂”評論等功能,需要的朋友可以參考下2015-04-04

