私たちは、自動テストスクリプトを書くときは、伝統的に、あなたは、このようなように、ID、名前、クラスと同様に、要素の性質を知っている必要があります。AIのちなみにその後、位置決め要素が直接検索ボックスを見るために、例えば、見つけるために、要素の性質を知るために評価者の判断の要素を必要としないかもしれないai:search
見つけるために、または私は、閉じるボタンを配置するために直接使用したいと思いai:close
、私たちは、この検索ボックスと閉じるボタンのプロパティを知っている必要はありません。
appiumはAIプラグインによって位置決め支持することができます。この位置決めは、それが2週間かかった経験する方法です。
システム要件
まず、画像を扱うためにシステムの依存関係の一部を必要としています。
- マックOS
brew install pkg-config cairo pango libpng jpeg giflib
- Linuxの
sudo apt-get install pkg-config libcairo2-dev libpango* libpng-dev libjpeg-dev giflib*
- ウィンドウズ
サポートされていません。
問題が発生した場合は、個別に各パッケージをインストールする必要があります。
私は既製appium環境を持っているので、後で簡単にサポートしていない見つかった、失敗した長い時間のために、Windowsのテストで開始、その後、MacOSのを交換し、その操作の背面はMacOSの時に完成され、もちろん、あなたは、Linux環境を持っている場合、IそれはOKです。
アンドロイドStudioがインストールさ
Androidのメーカーは、Android SDKを統合したので、私は、Android上で動作するモバイルデバイスなので、あなたは、AndroidのSDKをインストールする必要があります。
StudioのダウンロードのAndroid:https://developer.android.com/studio
あなたがパスを設定する必要がアンドロイドSDKにはAndroidのメーカーのインストール時に、私のパスは次のとおりです。
/Users/tech/Library/Android/sdk
その後、あなたは環境変数を設定する必要があります。sudo vi ~/.bash_profile
ANDROID_HOME=/Users/tech/Library/Android/sdk
PATH=${PATH}:${ANDROID_HOME}/platform-tools
PATH=${PATH}:${ANDROID_HOME}/tools
最後に、構成を検証するには:source ~/.bash_profile
インストールappium
1は、appium-デスクトップ、インストールappiumコマンドモードを使用しないでください。
> brew install node # get node.js
> npm install -g appium # get appium
2、取り付けappiumドクター
> npm install appium-doctor
3、によってappium-doctor
コマンド環境を確認します:
> appium-doctor
info AppiumDoctor Appium Doctor v.1.11.0
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Node version is 10.15.1
WARN AppiumDoctor ✖ Xcode is NOT installed!
info AppiumDoctor ✔ Xcode Command Line Tools are installed in: /Library/Developer/CommandLineTools
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
WARN AppiumDoctor ✖ Carthage was NOT found!
info AppiumDoctor ✔ HOME is set to: /Users/tech
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/tech/Library/Android/sdk
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
info AppiumDoctor ✔ adb exists at: /Users/tech/Library/Android/sdk/platform-tools/adb
info AppiumDoctor ✔ android exists at: /Users/tech/Library/Android/sdk/tools/android
info AppiumDoctor ✔ emulator exists at: /Users/tech/Library/Android/sdk/tools/emulator
info AppiumDoctor ✔ Bin directory of $JAVA_HOME is set
...
appium AIプラグイン
GtiHub住所:https://github.com/testdotai/appium-classifier-plugin
上記のAppium 1.9.2ベータ版を使用してください。また、(Android用)XCUITest(iOS用)ドライバまたはUiAutomator2やエスプレッソドライバを使用してください。IOSとAndroidの古いドライバがどのような場合に必要なAppiumをサポートしていない、それが推奨されていません。
分類器の設定
Appiumために利用可能なこのプラグインを作成するには、単に以下のメインappium項目のインストールディレクトリに移動し、実行します。
> cd /usr/local/lib/node_modules/appium
> npm install test-ai-classifier
このプラグインはAppiumの依存関係ツリーに取り付けられ、それを利用できるようにします。
私はこのプラグインをインストールするとき、次のコマンドを試すことができ、エラーのすべての種類を持っています。
> sudo npm --registry http://registry.npm.taobao.org install test-ai-classifier --unsafe-perm
使用
コマンドによってappiumを開始するには1、
> appium
[Appium] Welcome to Appium v1.14.0
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
...
2、自動テストスクリプトを書きます:
from appium import webdriver
from time import sleep
CAPS = {
"deviceName": " MEIZU_E3",
"automationName": "UiAutomator2",
"platformName": "Android",
"platformVersion": "7.1.1",
"appPackage": " com.meizu.flyme.flymebbs",
"appActivity": ".ui.LoadingActivity",
"noReset": True,
"unicodeKeyboard": True,
"resetKeyboard": True,
"customFindModules": {"ai": "test-ai-classifier"},
"testaiConfidenceThreshold": 0.1,
"shouldUseCompactResponses": False,
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', CAPS)
sleep(3)
# 用 AI 定位到搜索框
driver.find_element_by_custom("ai:search").click()
sleep(5)
driver.find_element_by_id("com.meizu.flyme.flymebbs:id/kf").send_keys("flyme")
driver.find_element_by_id("com.meizu.flyme.flymebbs:id/o7").click()
result = driver.find_elements_by_id("com.meizu.flyme.flymebbs:id/a2a")[0].text
print(result)
driver.quit()
automationName
あなたは、Androidをテストしたい場合は、を参照する必要がありますUiAutomator2
かEspresso
。customFindModulesは
として指定する必要があります{"ai": "test-ai-classifier"}
。testaiConfidenceThreshold
この関数は、最低信頼レベルの要素を考慮して決定します。デフォルトでは、0.2の値。1が完璧であることを自信を表し、0と1の間のパラメータの数は、0手段が自信を必要としません。shouldUseCompactResponses
これはappiumが大きく、このプラグインの入力を得るためのプロセスを促進要素に見出さ要素に関する追加情報が含ま示します。
最終的に、私が経験したいのコード行:
driver.find_element_by_custom("ai:search").click()
AIによって検索ボックスを見つけるには。
実際に検索しますが、位置決め速度は非常に遅く、約10〜20秒を必要としています。
あなたが知りたい場合はappium-classifier-plugin
、位置決め要素のこれらのタイプをサポートし、ここを参照してください:https://github.com/testdotai/appium-classifier-plugin/blob/master/lib/labels.js
現在、種類は100種類以上をサポートしています。