2つのオブジェクトの配置
2.1単一の要素の配置
自動化されたテストでは、オブジェクト要素の配置と操作は自動化のコア部分ですが、オブジェクトは配置の自動化の基礎であり、オブジェクトの操作はオブジェクトに基づいて形成できます。
Webdriverは、要素の配置方法を提供します。一般的な方法は次のとおりです。
id
名前
クラス名
タグ名
リンクテキスト
部分的なリンクテキスト
xpath
cssセレクター
pythonwebdriverに対応する個々のメソッドは次のとおりです。
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
Baiduホームページの検索入力ボックスがケースです。検索入力ボックスにappiumと入力して、Python Webdriverの要素の位置を説明します。Baiduホームページの検索入力ボックスのソースコードのスクリーンショットを参照してください。
<input id = "kw" class = "s_ipt" autocomplete = "off" maxlength = "255" value = "" name = "wd"> |
id / name / classname / xpath / cssセレクターの配置方法は次のとおりです。
#IDによるポジショニング
driver.find_element_by_id( 'kw')。send_keys( 'appium')
#名前で探す
driver.find_element_by_name( 'wd')。send_keys( 'appium')
#クラス名で検索
driver.find_element_by_class_name( 's_ipt')。send_keys( 'appium')
#xpath経由で検索
driver.find_element_by_xpath( ".//*[@id='kw']").send_keys('appium ')
#cssセレクターによるポジショニング
driver.find_element_by_css_selector( '#kw')。send_keys( 'appium')
Baiduホームページで「ニュース」を見つけるためのテキスト/部分リンクのリンク方法は次のとおりです。
#リンクテキストで検索
driver.find_element_by_link_text(u '新闻')。click()
#部分的なリンクテキストによるポジショニング
driver.find_element_by_partial_link_text(u '闻')。click()
2.2要素のグループの配置
ブラウザの特定の操作では、ボックスのドラッグなど、オブジェクトのグループを見つける必要がある場合があります。Webdriverには、要素のグループを見つけるためのメソッドfind_elementsが用意されています。
オブジェクトのグループを見つける方法は、単一のオブジェクトを見つける方法と同じです。以下を参照してください。
find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()
オブジェクトのグループを見つけるために使用されるシーンは、一般的に次のとおりです。
1.バッチ操作
2.もう1つは、オブジェクトのグループを選択し、このオブジェクトのグループ内で特定のオブジェクトを見つけることです。
2.3ブラウザの操作
ブラウザを最大化 |
Driver.maximize_window() |
ブラウザの高さと幅を設定します |
Driver.set_window_size() |
ブラウザを前方に制御する |
Driver.forward() |
ブラウザを制御し直す |
Driver.back() |
ブラウザの更新 |
Driver.refersh() |
ブラウザのタイトルを取得する |
Driver.title |
現在のウェブページのURLを取得します |
Driver.current_url |
現在のページのソースコードを取得する |
Driver.page_source |
実行中のブラウザの名前を取得します |
Driver.name |
上記のコード例は次のとおりです。
#コーディング:utf-8
セレンインポートWebドライバーから
時間からインポートスリープ
driver = webdriver.Firefox()#Python3.0を選択した場合は、ドライバーを追加する必要があります
#ブラウザの高さと幅を設定します
driver.set_window_size(500,600)
#ブラウザの最大化
driver.maximize_window()
driver.implicitly_wait(30)
#Baiduにアクセス
driver.get( 'http://www.baidu.com')
#更新
driver.refresh()
#bingにアクセス
driver.get( 'http://www.bing.com')
#戻る
driver.back()
# どうぞ
driver.forward()
#ブラウザのタイトルを取得する
プリンタードライバーのタイトルを印刷
#ブラウザのURLを取得する
プリンタードライバー.current_url
#ブラウザの現在のページのソースコードを取得します
プリンタードライバー.page_sourceを印刷する
#現在実行中のブラウザを取得する
プリンタードライバーの名前を印刷します
driver.quit()
2.4WebElementインターフェースの一般的なメソッド
要素のサイズを返します |
Driver.size() |
要素のテキストを取得します |
Driver.text |
属性値を取得する |
Driver.get_attribute() |
変更した要素を表示するかどうかを設定します |
Driver.is_displayed |
チェックボックスまたはラジオボックスがチェックされているかどうか |
Driver.is_selected() |
入力編集ボックスが編集されているかどうかを保存します |
Driver.is_enabled() |
空の操作 |
Driver.clear() |
アクションをクリックする |
Driver.click() |
入力操作 |
Driver.send_keys() |
******************************上記のコード例は次のとおりです:************ ***** ********************************************* ***** ********************
#coding:utf-8
seleniumimportwebdriverから
timeimportsleepから
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get( 'http://www.baidu.com')
login = driver.find_element_by_id( 'su')
#要素サイズを取得する
login.sizeを印刷します
#プロパティを取得する
printlogin.get_attribute( 'type')
#要素が表示されているかどうか
print u '表示されます:'、login.is_displayed()
#要素をチェックできるかどうか
print u 'チェック可能:'、login.is_selected()
#要素が編集可能かどうか
print u 'は編集可能です:'、login.is_enabled()
driver.quit()
2.5Baiduログインの例
BaiduホームページでBaiduにログインおよびログアウトして、デモ要素の配置とapiパーツの使用を完了しました。次のコードを参照してください。
************************************コード部分************ * ************************************************* * ***************
#コーディング:utf-8
seleniumimportwebdriverから
timeimportsleepから
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get( 'http://www.baidu.com')
#ログインボタンをクリックします
driver.find_element_by_link_text(u '登录')。click()
#アカウントを入力
driver.find_element_by_id( 'TANGRAM__PSP_8__userName')。send_keys( 'baidu account')
# パスワードを入力する
driver.find_element_by_id( 'TANGRAM__PSP_8__password')。send_keys( 'アカウントパスワード')
#自動ログインをキャンセルする
driver.find_element_by_id( 'TANGRAM__PSP_8__memberPass')。click()
#ログインボタンをクリックします
driver.find_element_by_id( 'TANGRAM__PSP_8__submit')。click()
#ニックネームを取得
niCheng = driver.find_element_by_xpath( ".// * [@ id = 's_username_top'] / span")
text = niCheng.text
niCheng.click()
#終了ボタンをクリックします
driver.find_element_by_xpath( ".// * [@ id = 's_user_name_menu'] / div / a [5]")。click()
#[OK]ボタンをクリックします
driver.find_element_by_xpath( ".// * [@ id = 'tip_con_wrap'] / div [3] / a [3]")。click()
sleep(2)
u'MaduChongshi 'でテキストをアサートします
driver.quit()