Huawei社のサーバーIBMCバッチ検査コード

セレンは、クロームwebdriverをドライブにダウンロードし、自分のGoogleのブラウザのバージョンに応じてダウンロードするための特定のバージョンをダウンロードする必要があり、その後、
同じディレクトリ内に自分のPythonインタプリタにアドレスをダウンロードすることができますwebdriverを良いドライバーhttp://npm.taobaoをダウンロード.ORG /ミラー/ chromedriver /

このコードは、Huawei社のサーバーのバッチ検査を使用することができ、あなたはipList.txtファイルを構築するために持っている同じディレクトリにスクリプトに保存されているに保存され
、1行につき1つのアドレスにサーバーの管理IPアドレス形式(つまりimbc管理アドレス)、スクリプトは、IPアドレスのすべてをループ、デフォルトHuawei社によってアカウントのパスワードになる
必要があれば、元のアカウントのパスワード(9000 @すなわち管理者とアドミ)サーバー、コードを自分で変更します。
ピット:サーバーは、いくつかの時間を待つ必要があるときにロードされたログだけにdriver.implicitly_wait()関数を使用して開始
行劣性待ち、NULL値のデータを取得する現象が発見され、調査が見つかりました。そのHuawei社IBMCインターフェイス要素理由データをロードし
、負荷が同期されていない、方法だけで()time.sleepを待つことを余儀なく選択することができます。

セレンwebdriverをからインポート
インポート数学
インポート日時
xlsxwriterインポート
インポート時間

#所定の検査表
今日= STR(datetime.date.today())
ワークブックxlsxwriter.Workbook =(「%S Huawei社の検査報告書の.xlsx」今日%)
ワークシート= workbook.add_worksheet( '華検査')

検査項目の
タイトル= [
U'IPアドレス'
U-'シリアル番号'
U-'モデル'
U'BMCバージョン'、
U'BIOSバージョン'
U-'ファンの状態'
U-'電源状態'
U-'ディスクの状態、
U'CPUの状態'
U'RAID状態'、
U-'emergent警告'
深刻なアラームのU-'number'、
アラームのU-'minor番号
]

#が書かれましたタイトル
worksheet.write_row( 'A1'、タイトル)

#)は、次の関数呼び出しのためのカテゴリのリストを(返す
)DEF listCheck(list_tr、*引数:
=リスト[]
のためのI list_tr中:
引数でのJのために:
IF i.startswith(J):
list.append(I)
の戻りリスト

#チェックリストソート
:DEF okCheck(一覧)を
一覧でIのために:
IF i.split( ' - OK')[7] =! '':
リターン'NO'
BREAKの
リターン'OK'

メイン
IF __name__ == '__main__':
オープン(と'ipList.txt'、 'R&LT'、エンコード=「UTF8 ')F AS:
IPLIST = f.readlines()
たrowNum = 2
IPLISTでipため:

#はwebdriverをオブジェクトの作成
ドライバー= webdriver.Chrome()
ログインHuawei社サーバのBMC
driver.getを('HTTPS://%s/login.html'%ip)
driver.find_element_by_id( 'ipUserName')。send_keys( '管理者')
driver.find_element_by_id( 'iptPassword')。send_keys( '管理者9000 @')
time.sleep(1)
driver.find_element_by_id( 'btnLogin')。(クリック)

#进入IFRAMEの子
driver.switch_to.frame( 'rightMid')

#ipの地址
IPADDR = driver.find_element_by_id( 'txtBMCIp')。テキスト
#序列号
xuliehao = driver.find_element_by_id( 'txtSequence')。テキスト
#1型号の
xinghao =ドライバ。 find_element_by_id( 'txtProductNameInfo')。テキスト
#iBMC地址
ibmc = driver.find_element_by_id( 'txtBMCFirm').textの
#biosファームウェアバージョン
= BIOS( 'txtBiosFirm')。テキストdriver.find_element_by_id
アラームの#緊急番号
金鶏= driver.find_element_by_id( 'txtCritalAlarms')。テキスト
#深刻なアラーム
Yanzhong = driver.find_element_by_id( 'txtMajorAlarmsを')。テキスト
#マイナーアラーム
qingwei =ドライバ。 find_element_by_id( 'txtMinorAlarms')。テキスト

、メイン文書に#戻り
driver.switch_to.default_content()

別のサブのiframeに#が
。( 'menu_SENSOR')をクリックしdriver.find_element_by_id()
time.sleep(3)
driver.switch_to.frame( 'rightMid')

は、センサのしきい値の数を取得します
'(STRR = driver.find_element_by_idtinyPaginationTotalRecords')。テキスト
int型= NUM(STRR [5:])

の内容が一覧表示#しきい値センサーを書きます
list_tr = []
のための範囲でI(Math.ceil(NUM / 10)):#センサーページ横断
driver.find_elements_by_xpathでjのために( ' * // / TBODY / TR [ID = "DataTables_Table_3" @] '):
list_tr.append(j.text)
driver.find_element_by_css_selector(「[クラス='のTi-Tiを直角'] ")をクリックします()。

状態CPUの
CPU = okCheck(listCheck(list_tr、 'CPU'))
ファンステータス
ファン= okCheck(listCheck(list_tr、 'ファン'))
#raid状態
RAID = okCheck(listCheck(list_tr、 'RAID'、 'レイド'))
#の電力状態
パワー= okCheck(listCheck(list_tr、 '電源'))
#のディスクステータス
ディスク= okCheck(listCheck(list_tr、 'ディスク'))


データ一覧
データ= [
IPADDR、
xuliehao、
Xinghao、
iBMC、
BIOS、
ファン、
電源、
ディスク、
CPU、
RAID、
金鶏、
Yanzhong、
Qingwei
]

#スプライシング行番号
行= '+ STR(たrowNum)
書き込み線の内容に指定#番号
worksheet.write_row(行、データ)
たrowNum + 1 =
#ページキャッシュの削除
driver.delete_all_cookiesを()
driver.close()
f.close()
workbook.close()

おすすめ

転載: www.cnblogs.com/xpptt/p/11775638.html