マルチアカウントログインをテストします。

#インポートWebモジュールの特徴:
インポートwebdriverをセレンから
インポート時間
:#インポート活動モジュールの機能
のインポートActionChains selenium.webdriver.common.action_chainsから
#待ちインポートモジュールの特徴:
selenium.webdriver.support.uiインポートWebDriverWaitから
#インポートusedataモジュールget_webinfo GET_USERINFO機能と特徴:
usedata輸入get_webinfo、GET_USERINFOから
#インポートログ機能:
log_moduleインポートからLOGINFO

:#待ち時間は、関数定義された
DEFのget_ele_times(ドライバー、回、FUNCを):
リターンWebDriverWait(ドライバー、回).until(FUNC)

を定義しますブラウザ機能を開き、ハンドルを返します。
DEF openBrower():
webdriver_handle = webdriver.Firefox()
返すようにハンドルを返すwebdriver_handle#

#URL定義関数をロードする:
DEFのOpenURL(ハンドル、URL):
handle.get(URL)

:要素が機能見つけるの#define
DEF findElement(D、アルギニン):
"" "
のparam D:ファイルハンドル
:PARAM argは:辞書でなければなりません
:リターン:
" ""
#text_id = "ログイン"
#text_idのIFのArgで:
#生成待ち時間とtext_idがログに記録されて見つける:
。get_ele_timesを(D、1、ラムダD:d.find_element_by_link_text( "ログイン"))をクリックします()
time.sleep(1)
#CSSは、ユーザーのログイン名へのパスを見つける:
d.find_element_by_css_selector( "HTMLボディのdiv#-Passport-pop.tangログイン・パス・ログイン-merge.tang-POP-POP-パススルーログイン-TPL-Mnの。"
「パススルー唐-POP-ログイン-色-blue.tang-パスDIV#TANGRAM__PSP_4__foreground.tangログイン-ポップフォアグラウンド"
"のdiv#TANGRAM__PSP_4__body。「タング・ボディのdiv#TANGRAM__PSP_4__content.tangコンテンツ
"のdiv#パスポートログイン-POP-ダイアログdiv.clearfix div.passログイン-コンテンツをポップ"
"div.passログイン-POP-フォームdiv.tangパス-footerBar P#TANGRAM__PSP_10__footerULoginBtn。"
"タング・パスfooterBarULogin.passリンク")。()をクリック
time.sleep(1)
useEle = d.find_element_by_id(引数[ "ユーザID"])
pwdEle = d.find_element_by_id(引数[ "pwdid"])
loginEle =をd.find_element_by_id(引数[ "ログインID"])
戻りuseEle、pwdEle、loginEle

#定义发送接口函数:
DEF sendVals(eletuple、引数):
""」
:PARAM eletuple:元组
:PARAM引数:字典格式:のuname、PWD
:リターン:


iが0 =
:listkeyにおけるキーの
eletuple [I] .send_keys( "")
eletuple [I] .clear()
time.sleep(1)
eletuple [I] .send_keys(引数[キー])
iは+ = 1
時間。スリープ(5)
eletuple [2] .click()
定义拖动功能未实现:
#d.find_element_by_css_selector(「HTML本体DIV#1 vcode-body811.vcode体DIV#MOD-vcodes811.mod-vcodes DIV#pass- content811。 "
# "MOD-vcode-content.clearfixのdiv#パススピンcontrol811.vcode-スピンコントロールのdiv#1 vcode-スピンbutton811。"
#" vcode-スピンボタンのp#vcodeスピンボタン-p811 。「).move_to_element()drag_and_drop()右()。

定义检查结果功能:
デフcheckResult(D、err_id、引数、ログ):
偽=結果
time.sleep(2)
セットスロー:
試してみてください。
ERR = d.find_element_by_id(ERR_ID)
MSG = "%S%S:エラー:%S \ n -で" %(アルギニン[ "は、uname"]、アルギニンを[ "PWD"]、err.text)
log.log_write(MSG)
を印刷( "!ユーザー名またはパスワードが間違っ")
を除い:
印刷( "ログインに成功!")
MSG = "%S%S:パス\ nは- " % (Argで[ "は、uname"]、Argで[ "PWD"])
log.log_write(MSG)
の結果=真
リターン結果

#ログアウトインタフェース関数が定義されている:
DEFジンバブエログアウト(D、ele_dict):
ELE = d.find_element_by_link_text(ele_dict [「UserMenu 「])
ActionChains(D).move_to_element(ELE).perform()
time.sleep(1)
出口ボタン処理見つけます。
。d.find_element_by_link_text(ele_dict [ "ジンバブエログアウト"])をクリック()
time.sleep(1)
ブロック決意処理を再生見つける:
。d.find_element_by_css_selector(ele_dict [ "決定"])をクリック()

定義されたテストアクセス機能をログ:
login_testはDEF(ele_dict、user_list):
D = openBrower()
#LOGINFO定義初期化関数:
ログ= LOGINFO()
のOpenURL(D、ele_dict [ "URL"])#オープンURL特徴とハンドル着信URL
ele_tuple = findElement(D、 ele_dict)#動作結果タプル
user_listのArgのための:
sendVals(ele_tuple、アルギニン)
結果= checkResult(D、ele_dict [ "errorIDの"]、アルギニン、ログ)
:結果IF
#ログアウト:
ジンバブエログアウト(D、ele_dict)
時間.sleep(1)
ログバック:
ele_tuple = findElement(D、ele_dict)
log.log_close()#关闭日志文件

#定义主函数:
もし__name__ == '__main__':
範囲内のiについて#(1):
#URL =「https://www.baidu .COM /」
#login_text = "登录"
#アカウント= "15638199275"
#PWD = "12345678dd"
#ele_dict = { "URL":urlには、 "text_id":login_text、 "ユーザーID": "TANGRAM__PSP_10__userName"、 "pwdid": "TANGRAM__PSP_10__password"、
"ログインID": "TANGRAM__PSP_10__submit"、 "は、uname":アカウント、 "PWD":PWD、 "errorIDの": "!用户名或密码错误"}
ele_dict = get_webinfo(R "C:\マイコード\セレン自動テスト\ Baiduのクラウドログイン\ WEBINFO ")
user_list = GET_USERINFO(R" C:\マイコード\セレン自動テスト\ Baiduのクラウドログイン\ userinfoを「)
User_list =#[{ "は、uname":アカウント、 "PWD":PWD}]
#WEBINFO設定ファイル情報とusrinfoを含有する、設計インターフェースはget_webinfo(パス名)を含み、(コンフィギュレーションファイルのパス名)GET_USERINFO
#ele_dict = get_webinfo(パス) 、user_list = GET_USERINFO(パス)
login_test(ele_dict、user_list)

おすすめ

転載: www.cnblogs.com/zhang-da/p/12114376.html