您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何在Python中使用Selenium對(duì)異常進(jìn)行處理,億速云小編覺得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來看看吧!
Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
from selenium import webdriver from selenium.common.exceptions import TimeoutException, NoSuchElementException browser = webdriver.Chrome() try: browser.get('https://www.baidu.com') except TimeoutException: print('超時(shí)') try: browser.find_element_by_id('aa') except NoSuchElementException: print('未找到節(jié)點(diǎn)') finally: browser.close()
關(guān)于異常處理的實(shí)例擴(kuò)展:
我是Python的新手,我正在嘗試編寫一個(gè)使用硒登錄到Web應(yīng)用程序并打印一些信息的nagios腳本。到目前為止,該腳本可以按預(yù)期工作,但是如果它無法檢索該網(wǎng)站,我希望它向系統(tǒng)發(fā)出警報(bào)。這是我所擁有的
#!/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)
我希望如果第一部分失敗,那么它將轉(zhuǎn)到except部分,但是即使有出口,腳本也會(huì)打印出try和except。我確定這很簡(jiǎn)單,我很想念。
這就是我最終解決此問題的方式,感謝您的幫助
#!/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)或無,則默認(rèn)為零(即成功)。如果狀態(tài)為整數(shù),則將其用作系統(tǒng)退出狀態(tài)。如果是另一種對(duì)象,則將其打印出來,并且系統(tǒng)退出狀態(tài)將為1(即失?。?/p>
刪除sys.exit(0)內(nèi)部try
以上就是億速云小編為大家收集整理的如何在Python中使用Selenium對(duì)異常進(jìn)行處理,如何覺得億速云網(wǎng)站的內(nèi)容還不錯(cuò),歡迎將億速云網(wǎng)站推薦給身邊好友。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。