selenium自動化テスト入門の実戦


一、Selenium紹介
Seleniumは何ですか?自動化テストツール。これはChrome、Safari、Firefoxなどの主要なインターフェース式ブラウザを含み、これらのブラウザにSeleniumのプラグインをインストールすれば、Webインターフェースのテストを簡単に行うことができます。
Selenium 2は、WebDriverとして、Selenium 1.0とWebDriver(WebDriverはかつてSeleniumのライバルだった)を統合した新機能です。つまりSelenium 2はSeleniumとWebDriverの二つの項目の合併であり、Selenium 2対応Seleniumであり、Selenium APIもWebDriver APIもサポートしています。
日本語文書:http://selenium-python-zh.readthedocs.io/en/latest/index.html
英文の文書:http://selenium-python.readthedocs.io/index.html
二、python、pycharmインストール
Python公式サイトからリンクをダウンロード:
https://www.python.org/downloads/windows/
pycharm公式サイトからリンクをダウンロード:https://www.jetbrains.com/pycharm/download/#section=windows
三、selenium設置
1)pip install selenium
Chrome driverをインストール
https://chromedriver.storage.googleapis.com/index.html?path=2.29/
ChromeブラウザとChromedriverバージョン番号:
chromedriverバージョン
サポートされているChromeバージョン
v 2.43
v 69-71
v 2.42
v 68-70
v 2.41
v 67-69
v 2.40
v 66-68
v 2.39
v 66-68
v 2.38
v 65-67
v 2.37
v 64-66
v 2.36
v 63-65
v 2.35
v 62-64
v 2.34
v 61-63
v 2.33
v 60-62
v 2.32
v 59-61
v 2.31
v 58-60
v 2.30
v 58-60
v 2.29
v 56-58
v 2.28
v 55-57
v 2.27
v 54-56
v 2.26
v 53-55
v 2.25
v 53-55
v 2.24
v 52-54
v 2.23
v 51-53
v 2.22
v 49-52
v 2.21
v 46-50
v 2.20
v 43-48
v 2.19
v 43-47
v 2.18
v 43-46
v 2.17
v 42-43
v 2.13
v 42-45
v 2.15
v 40-43
v 2.14
v 39-42
v 2.13
v 38-41
v 2.12
v 36-40
v 2.11
v 36-40
v 2.10
v 33-36
v 2.9
v 31-34
v 2.8
v 30-33
v 2.7
v 30-33
v 2.6
v 29-32
v 2.5
v 29-32
v 2.4
v 29-32
2)chromedriver.exeをchromeのインストールディレクトリにコピーします。\Google\Chrome\Appplication\は、同時にchromeのインストールディレクトリをpath環境変数に追加します。
四、自動テスト実戦:12306予約
1.知識点
Seleniumウェブ要素の位置付け方法
ブラウザデバッグツールの使用
2.手順
1)人工的に一回のプロセスを歩くと、自動化の流れがよく分かります。
2)手順に従って分割し、各ステップに対して自動化スクリプトを作成する
3)すべてのステップを合わせて、複数回実行し、スクリプトをテストします。
3.12306を開く

#    
driver.get('https://kyfw.12306.cn/otn')
#          
time.sleep(5)
4.ログイン12306
1)chrome画面で、F 12ショートカットキーを押して、chromeのデバッグツールをイジェクトする。
2)登録ボタンのidとusername、passwordのidを探し出す
idによる元素の位置決め

driver.find_element_by_id("username").click()
driver.find_element_by_id("username").send_keys("[email protected]")
driver.find_element_by_id("password").send_keys("***")
print("continue")
time.sleep(15)
リンクされたテキストに基づいて要素を特定します。

driver.find_element_by_link_text("    ").click()
time.sleep(5)
在这里插入图片描述
出発地を選択
这里写图片描述
jsコードを使ってブラウザの画面を凍結します。

setTimeout(function(){debugger;}, 5000)

#     
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=  ]").click()

time.sleep(5)
这里写图片描述
コードの位置を右クリックし、copy selectorを選択します。
这里写图片描述
这里写图片描述
这里写图片描述
出発日を選ぶ
这里写图片描述
这里写图片描述
車の種類を選択:
五、実験分析:
1、12306の変態検証コードを解読しません。自動解読の検証コードがないので、5秒残して自分で手動で検証コードを選択します。
2、学生認証ですので、もう一歩確認が必要です。
3、チケットの予約が成功しました
六、まとめ
自動化テストの利点は、多くのソフトウェアテストスタッフが手動で再度テストを実行する必要がなく、自動化機能テストツールを使って行うことができます。
自動化テストの欠点も明らかで、それらはいくつかの比較的に主要な問題を検査することしかできません。例えば、崩壊、フリーズなどのようですが、いくつかの一般的な日常の誤りを発見することができません。これらの間違いは人の目を通して簡単に見つけられますが、機械はよく見つけられません。また、自動テストではテストスクリプトの作成作業も多く、手動テストの時間を超えて作業が行われることもあります。
Seleniumスクリプトの実行速度は、ネットワーク速度、操作手順の煩雑さ、ページローディングの速度、スクリプトに設定された待ち時間、スクリプトを実行するスレッド数など、多岐にわたります。だから、一方的に運転速度を追求するのではなく、安定性を確保し、安定的に回帰テストを実現することが肝心です。
Seleniumは元素の成功率を保証するのは元素の位置付けを通してで、もちろんその位置付けの方法はとても多くて、きっと適切なことができます。しかし、自動化工程の実施過程において、高品質の自動化テストはテスト員だけが保証するものではない。開発者が開発習慣を規範化する必要があります。ページ要素に唯一のname、idなどを加えると、元素の位置付けの正確性が大幅に向上します。
添付コード:

#-*-coding:utf8-*-
import time
from selenium import webdriver

#  chrome,     
driver =webdriver.Chrome()
#       
driver.set_window_size(1080,800)

#        
driver.implicitly_wait(10)

#    
driver.get('https://kyfw.12306.cn/otn')

time.sleep(5)

driver.find_element_by_link_text("    ").click()
driver.find_element_by_id("J-userName").click()
driver.find_element_by_id("J-userName").send_keys("[email protected]")
driver.find_element_by_id("J-password").send_keys("***")
print("continue")
#           
time.sleep(15)

driver.find_element_by_link_text("    ").click()
time.sleep(5)
#     
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=  ]").click()

time.sleep(5)
#     
driver.find_element_by_id("toStationText").click()
driver.find_element_by_css_selector(u"[title=  ]").click()
time.sleep(5)

#      
driver.find_element_by_id("train_date").click()
driver.find_element_by_css_selector("body > div.cal-wrap > div:nth-child(1) > div.cal-cm > div:nth-child(24) > div").click()
time.sleep(5)

#    
driver.find_element_by_css_selector("#_ul_station_train_code > li:nth-child(1) > label").click()
time.sleep(5)

while True:
  try:
    driver.find_element_by_id("query_ticket").click()
    e=driver.find_element_by_id("SWZ_6i00000G720F")
    e.click()
    if e.text in [u' ','--']:
      print ("nono")
      time.sleep(1)
    else:
      print("yes")
      #   
      driver.find_element_by_link_text("  ").click()
      #      
      driver.find_element_by_css_selector("#normal_passenger_id > li:nth-child(1) > label").click()
      #      (       )
      driver.find_element_by_link_text("  ").click()
      #     
      driver.find_element_by_link_text("    ").click()
      driver.find_element_by_link_text("  ").click()
  except:
    pass
ここで、selenium自動化テストの入門に関する文章を紹介します。これまでの文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。