主頁 > 知識(shí)庫 > Python Selenium異常處理的實(shí)例分析

Python Selenium異常處理的實(shí)例分析

熱門標(biāo)簽:螳螂科技外呼系統(tǒng)怎么用 遼寧智能外呼系統(tǒng)需要多少錢 舉辦過冬奧會(huì)的城市地圖標(biāo)注 阿里電話機(jī)器人對(duì)話 電銷機(jī)器人系統(tǒng)廠家鄭州 qt百度地圖標(biāo)注 地圖地圖標(biāo)注有嘆號(hào) 400電話申請(qǐng)資格 正安縣地圖標(biāo)注app

1、說明

在使用selenium時(shí),不可避免的會(huì)遇到一些異常情況,比如超時(shí)、沒有找到節(jié)點(diǎn)的錯(cuò)誤等等。一旦出現(xiàn)這樣的錯(cuò)誤,程序就不能再運(yùn)行了。這里我們可以使用tryexcept語句來捕捉異常。

2、實(shí)例

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。我確定這很簡單,我很想念。

這就是我最終解決此問題的方式,感謝您的幫助

#!/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(即失敗)。

刪除sys.exit(0)內(nèi)部try

到此這篇關(guān)于Python Selenium異常處理的實(shí)例分析的文章就介紹到這了,更多相關(guān)Python Selenium異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 一文搞懂python異常處理、模塊與包
  • Python異常處理與反射相關(guān)問題總結(jié)
  • Python異常處理中容易犯得錯(cuò)誤總結(jié)
  • Python打包exe時(shí)各種異常處理方案總結(jié)
  • python基礎(chǔ)之文件操作和異常處理
  • Python pip install之SSL異常處理操作
  • 通過實(shí)例了解Python異常處理機(jī)制底層實(shí)現(xiàn)
  • Python異常處理機(jī)制結(jié)構(gòu)實(shí)例解析
  • python異常處理之try finally不報(bào)錯(cuò)的原因
  • python except異常處理之后不退出,解決異常繼續(xù)執(zhí)行的實(shí)現(xiàn)
  • python異常處理和日志處理方式
  • Python Django中間件,中間件函數(shù),全局異常處理操作示例
  • Python 異常處理總結(jié)

標(biāo)簽:合肥 阜新 昭通 興安盟 淘寶好評(píng)回訪 濟(jì)源 隨州 信陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python Selenium異常處理的實(shí)例分析》,本文關(guān)鍵詞  Python,Selenium,異常,處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python Selenium異常處理的實(shí)例分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python Selenium異常處理的實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章