溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Python中使用Selenium對(duì)異常進(jìn)行處理

發(fā)布時(shí)間:2021-03-01 15:06:13 來源:億速云 閱讀:233 作者:戴恩恩 欄目:開發(fā)技術(shù)

這篇文章主要介紹了如何在Python中使用Selenium對(duì)異常進(jìn)行處理,億速云小編覺得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來看看吧!

python是什么意思

Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。

實(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。我確定這很簡(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)站推薦給身邊好友。

向AI問一下細(xì)節(jié)

免責(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)容。

AI