Python Selenium異常處理的實例分析
在使用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異常處理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
