説明する
Python3 に基づく Webdriver API、unittest フレームワーク、ドライバーのバージョン、ブラウザーの選択について詳しく説明します。この内容は、Python3 の Unittest フレームワークを簡単に理解する必要があるため、ここでは詳しく説明しませんが、理解できない場合は、Baidu で検索してください。早速、本題に入りましょう!
シンプルなコードフレームワークテンプレート
1 from Selenium import webdriver 2 import unittest 3 4 class MyTest(unittest.TestCase): 5 6 def setUp(self): 7 self.driver = webdriver.Chrome() 8 11 def testFunc(self): # 以下のすべてのコード例この関数を直接置き換えるか、関数をコードに直接追加します。 12 pass 13 def teaDown(self): 14 self.driver.quit() 15 16 17 if __name__ == '__main__': 18 Unittest.main()
①あるWebサイトにアクセスする
目的: 指定された URL を開きます
テストアドレス: https:www.baidu.com
APIインスタンスコードの呼び出し
1 def testOpenBaiduUrl(self): 2 '' 3 1. 特定のアドレスにアクセスします 4 :return: 5 '' 6 BaseUrl = 'https://www.baidu.com/' 7 BaseTitle = 'Baidu' 8 self。 driver.get(baseUrl)# Baidu URL にアクセスします 9 currTitle = self.driver.title # 現在のページのタイトルを取得します 10 self.assertIn(baseTitle, currTitle, msg='ページジャンプに失敗しました') # Assert
② Webページのページ送り、戻し、更新
目的: ブラウザの進む機能と戻る機能をシミュレートします。
テストアドレス:
https://www.sogou.com;https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testBackForwardRefresh(self): 2 '' 3 現在のページを前方、後方、更新します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www.baidu.com/' 7 BaseSogouUrl = 'https:/ / www.sogou.com/' 8 self.driver.get(baseBaiduUrl) 9 self.driver.get(baseSogouUrl) 10 self.driver.back() # 戻る 11 print(self.driver.current_url) 12 self.driver. forward () # 次へ進みます 13 print(self.driver.current_url) 14 self.driver.refresh() # ページを更新します
③ブラウザウィンドウの位置を操作する
目的: ウィンドウを最大化し、ブラウザの位置座標を取得し、ブラウザ ウィンドウの位置を設定します。
テストアドレス: https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testWindow(self): 2 '' 3 ウィンドウを最大化し、現在のウィンドウの位置を取得し、現在のウィンドウの位置を設定します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www. baidu.com/' 7 self.driver.get(baseBaiduUrl) 8 Position = self.driver.get_window_position() # 現在のウィンドウの位置座標を取得します 9 print('現在のウィンドウの横座標は {}'.format( Position['x'])) 10 print('現在のウィンドウの座標は {}'.format(position['y'])) 11 self.driver.set_window_position(400, 200) # ウィンドウの位置を設定しますwindow 12 print('座標設定後のウィンドウの位置: {}'.format(self.driver.get_window_position())) 13 self.driver.maximize_window() #ウィンドウを最大化する
④ブラウザウィンドウのサイズを操作する
目的: 現在のウィンドウのサイズを取得し、現在のウィンドウのサイズを設定します。
テストアドレス: https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testWindowSize(self): 2 '' 3 現在のウィンドウのサイズを取得し、現在のウィンドウのサイズを設定します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www.baidu.com/' 7 self.driver .get(baseBaiduUrl) 8 #現在のウィンドウのサイズを取得します 9 windowSize = self.driver.get_window_size('current') 10 print('現在のウィンドウの幅は {}'.format(windowSize[ 'width'])) 11 print ('現在のウィンドウの高さは {}'.format(windowSize['height'])) 12 #現在のウィンドウのサイズを設定します 13 self.driver.set_window_size(width=200 、高さ = 400、windowHandle = 'current') 14 print(self.driver.get_window_size('current'))
⑤現在のページのTitle属性値を取得
目的: Baidu ページの title 属性値を取得します。
テストアドレス: https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testGetBaiduTitle(self): 2 '' 3 ページのタイトル属性値を取得します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www.baidu.com/' 7 self.driver.get( baseBaiduUrl) 8 bdTitle = self.driver.title # Baidu ページの title 属性値を取得します 9 print(bdTitle) 10 self.assertEqual(bdTitle,'Baidu ならわかるでしょう',msg='ページのタイトルが間違っています'
⑥ページのURLアドレスとページソースコードを取得
目的: Baidu ページのアドレスとソース コードを取得します。
テストアドレス: https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testGetBaiduUrlSourceCode(self): 2 '' 3 ページの URL とページ ソース コードを取得します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www.baidu.com/' 7 self.driver。 get(baseBaiduUrl ) 8 bdUrl = self.driver.current_url # 現在のページの URL アドレスを取得します 9 print(bdUrl) 10 self.assertEqual(bdUrl,'https://www.baidu.com/',msg='The現在のページの URL が正しくありません' ) 11 sourceCode = self.driver.page_source # 現在のページのソース コードを取得します。 v 12 print(sourceCode)
⑦ブラウザウィンドウハンドルの取得と切り替え
目的: 現在のウィンドウ ハンドルを取得し、すべてのウィンドウ ハンドルを取得し、ハンドルを切り替えます。
テストアドレス: https://www.baidu.com
APIインスタンスコードの呼び出し
1 def testGetwindowHandle(self): 2 '' 3 現在のページのハンドルを取得し、ウィンドウを切り替えます 4 :return: 5 '' 6 インポート時間 7 BaseBaiduUrl = 'https://www.baidu.com/' 8 self .driver .get(baseBaiduUrl) 9 self.driver.maximize_window() 10 # 現在のウィンドウ ハンドルを取得します 11 current_handle = self.driver.current_window_handle 12 print(current_handle) 13 #Baidu 検索ボックスに「selenium」と入力し、Baidu 14 self をクリックします。 driver.find_element_by_id( 'kw').send_keys('selenium') 15 self.driver.find_element_by_id('su').click() 16 time.sleep(3) 17 #Click selenium の Baidu Encyclopedia リンク 18 self.driver.find_element_by_partial_link_text('Baidu Encyclopedia').click() 19 #すべてのウィンドウのハンドルを取得します 20 all_handles = self.driver.window_handles 21 print(all_handles) 22 #新しいウィンドウのハンドルを出力します 23 print(self .driver.window_handles[-1]) 24 for handle in all_handles: 25 # 新しいウィンドウに切り替えます 26 if handle != current_handle: 27 self.driver.switch_to.window(handle) 28 self.driver.find_element_by_link_text('英語要素の名前 selenium ').click() 29 # 元のウィンドウに戻る 30 self.driver.switch_to.window(current_handle) 31 sendKeys = self.driver.find_element_by_id('kw') 32 sendKeys.clear() 33 sendKeys.send_keys('python')
⑧ページ要素の基本情報を取得する
目的: ページ上の特定の要素のタグ名、サイズ、テキストを取得します。
テストアドレス
https://www.baidu.com
1 def testGetElementInfo(self): 2 3baseBaiduUrl = 'https://www.baidu.com/' 4 self.driver.get(baseBaiduUrl) 5 self.driver.maximize_window() 6 element = self.driver.find_element_by_xpath(" //a[text()='ニュース']") 7 print('私のタグ名は {}、テキストは {}、サイズは {}'.format(element.tag_name,element.text, element.size ))
出力: 私のタグ名は a、テキストはニュース、サイズは {'height': 24, 'width': 26} です。
⑨要素のCSS属性値を取得する
目的: Baidu 入力ボックスの CSS 属性値を取得します。
テストアドレス
https://www.baidu.com
1 def testGetCssInfo(self): 2 '' 3 要素の CSS 属性値を取得します 4 :return: 5 '' 6 BaseBaiduUrl = 'https://www.baidu.com/' 7 self.driver.get( baseBaiduUrl) 8 self.driver.maximize_window() 9 element = self.driver.find_element_by_id('kw') 10 print(element.value_of_css_property('height'))# 検索ボックスの高さを取得します 11 print(element.value_of_css_property( 'width') )# 検索ボックスの幅を取得します 12 print(element.value_of_css_property('font-family'))# 検索ボックスに入力されたフォントを取得します
出力:
22px
500px
arial
⑩入力ボックスに指定した内容を入力し、入力ボックスの内容をクリアします
目的: Baidu 入力ボックスに「python」と入力し、内容をクリアします。
テストアドレス
https://www.baidu.com
1 def testInputClear(self): 2 '' 3 要素の CSS 属性値を取得します 4 :return: 5 '' 6 インポート時間 7 BaseBaiduUrl = 'https://www.baidu.com/' 8 self.driver .get(baseBaiduUrl) 9 self.driver.maximize_window() 10 element = self.driver.find_element_by_id('kw') 11 element.send_keys('python')# 指定した内容を入力します 12 time.sleep(5) 13 要素。 clear() # 入力ボックスをクリアします
要約する
上記には合計 10 個の例があり、get()、send_keys()、clear()、text、maximum_window()、current_url、back()、forword()、refresh()、get_window_position()、get_window_size などの API が関係しています。 (), set_window_position, title, current_window_handle, window_handles, value_of_css_property() など、実際の作業でよく使うメソッドが十数個ありますので、皆さんの参考になれば幸いです、その他のAPIの使い方も今後更新されます。
自動テストについて学びたい場合は、次の一連のビデオが非常に役立ちます。
自動テストを1ヶ月で強制的に学習し、学習後すぐに就職する方法 初心者でもすぐに身につく 感謝もせずに取り上げられるし、タダでセックスさせられる.. 。
最後に、私が蓄積して整理したドキュメントと学習資料をいくつか紹介します。必要な場合は、直接入手してください。上記の内容は、ソフトウェア テストの友人にとって最も包括的で完全な準備倉庫となるはずです。各モジュールを慎重に整理するために、知識のポイントを見逃さないように、インターネット上の多くの質の高いブログ投稿やプロジェクトも参照し、多くの友人がこれらのコンテンツを参考にして検討し、BATJ などの大手メーカーからオファーを獲得しました。 . このウェアハウスも役に立ちました。ソフトウェア テストについて多くのことを学びました。それがあなたにも役立つことを願っています。