airtest - Selenium の UI 自動テストに基づく

1. Airtest-Selenium環境構築

1.1 インストールと導入

airtest-selenium ライブラリは、Selenium ライブラリに基づく追加のパッケージです:
https://airtest.doc.io.netease.com/tutorial/13_Selenium/

pip install airtest-selenium
pip install pynput

airtest-selenium ライブラリのいくつかの機能:
1) タブを切り替えるためのインターフェイスのフレンドリーなパッケージ化、
2) 画像認識のサポート、
3) 自動ログ記録 (selenium-java の監視モードを参照)、
4) Selenium のネイティブとの互換性API

1.2 ブラウザとブラウザドライバをダウンロードする

この記事では、Chrome ブラウザを使用して、対応するブラウザ ドライバ chromedirver.exe をダウンロードします。

1) Chromeのバージョンを確認する

chrome://version/

2) Chromeブラウザの自動アップデート機能をオフにする

ブラウザの自動更新後にブラウザのバージョンが変わると、ダウンロードしたchromedirver.exeが無効になる場合があります。

[マイ コンピュータ] を右クリック - [管理] - [サービスとアプリケーション] - [サービス] - [停止]: Google Update Service (gupdate)、Google Update Service (gupdatem); スタートアップの種類: 手動

3) chromedriver と chrome バージョンのマッピング関係

ChromeDriver版本    Chrome版本
    v2.44           v69-71
    v2.42           v68-70
    v2.41           v67-69
    v2.40           v66-68
    v2.38           v65-67
    v2.37           v64-66
    v2.35           v62-64
    v2.34           v61-63
    v2.33           v60-62
    v2.32           v59-61
    v2.31           v58-60

4) Chrome ドライバーをダウンロードし、Chrome.exe と同じディレクトリに保存します。

Chrome.exe のデフォルトの保存パスは次のとおりです:
C:\Program Files (x86)\Google\Chrome\Application

chromedriver のダウンロード リンク:
http://npm.taobao.org/mirrors/chromedriver

さまざまなバージョンの Chrome をダウンロードします:
https://www.slimjet.com/chrome/google-chrome-old-version.php

3. 環境を確認する

# -*- coding:utf-8 -*-
# Author:chinablue

import time

from airtest_selenium.proxy import WebChrome

driver = WebChrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.maximize_window()
driver.get("http://www.baidu.com/")
time.sleep(5)
driver.quit()

4. インストールの問題の記録

次のエラーが発生した場合は、管理者権限で Pycharm ソフトウェアを再起動してみてください

selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to create Chrome process.

2. 一般的な使用シナリオの説明

2.1 Chromeブラウザの共通パラメータ設定

# -*- coding: utf-8 -*-
# @Time    : 2020/11/18 20:52
# @Author  : chinablue

import time

from airtest_selenium.proxy import WebChrome
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')

# 指定浏览器的分辨率
options.add_argument('--window-size=1920,1080')

# 关闭提示: Chrome正受到自动测试软件的控制
# options.add_argument('--disable-infobars')  # 老版本Chrome浏览器的写法
options.add_experimental_option("excludeSwitches", ['enable-automation'])

# 无界面运行
# options.add_argument('--headless')

# 配置代理
# options.add_argument("--proxy-server=http://127.0.0.1:9631")

# 其他设置: 不加载图片, 设置语言, 设置User-Agent等

driver = WebChrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe",
                   chrome_options=options)

driver.get("http://www.baidu.com/")

time.sleep(5)
driver.quit()

注:
インターフェイスが実行されていないときに MoveTargetOutOfBoundsException がスローされた場合は、ブラウザに --window-size パラメータを設定して再試行してください。

2.2 アラートボックスの処理

driver.switch_to.alert.accept()

注:
現在のページにアラート ボックスがある場合、ブラウザを閉じると例外がスローされます。

2.3 ログイン時の簡易スライダー操作

from selenium.webdriver import ActionChains

action_chains = ActionChains(driver)
d1 = driver.find_element_by_class_name("el-icon-d-arrow-right")  # 定位滑块
action_chains.click_and_hold(d1).perform() # 鼠标左键按住滑块不动
action_chains.reset_actions()  # 清楚之前的action
action_chains.move_by_offset(300, 0).perform() # 平行移动滑块, 其中300表示x轴, 0表示y轴

2.4 Chrome ブラウザの通知ボックスを自動的に処理する

# 创建一个名字为run.reg的文件, 内容如下. 双击执行此文件来修改注册表信息
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google]

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"DefaultPluginsSetting"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\PluginsAllowedForUrls]
"1"="http://ztc.njtopsun.com/topsun/#/"

注:
  1) ファイルの青い部分をテストする Web サイトに置き換える必要があります
  2) Chrome のバージョンが異なると、通知ポップアップを自動的に処理する方法が異なります。この例で使用されている Chrome のバージョンは Chrome 86 です
  3) Chrome の DefaultPluginsSetting パラメータの説明については、ここをクリックしてください。


最後に、私の記事を注意深く読んでくださった皆さんに感謝します。ファンの成長と関心を常に見ていると、相互主義が常に必要になります。それほど価値のあるものではありませんが、使用していただければ、直接受け取ることができます。

これらの資料は、[ソフトウェア テスト] に携わる友人にとって、最も包括的で完全な準備倉庫となるはずです。この倉庫は、私が最も困難な旅を乗り越えるのにも同行してくれました。そして、あなたにも役立つことを願っています。

最後に:私の VX 公開アカウント [Automated Test Veteran Driver] で、 216 ページのソフトウェア テスト エンジニアのインタビュー集ドキュメントを無料で入手できます。また、対応するビデオ学習チュートリアルは無料で共有できます。これには、基礎知識、Linux の要点、シェル、インターネット プログラムの原則、Mysql データベース、パケット キャプチャ ツールのトピック、インターフェイス テスト ツール、高度なテスト - Python プログラミング、Web 自動テスト、APP 自動テスト、インターフェイス自動テスト、高度な継続的インテグレーションのテストが含まれます。テストフレームワーク開発 テストフレームワーク、パフォーマンステスト、セキュリティテストなど 私と交流することもできます

おすすめ

転載: blog.csdn.net/myh919/article/details/131424850