0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソシャゲの自動化をしたく、debug buildでのテストはいくつもあるのですが、
AppStoreからダウンロードしたものを自動化できないか調べてみました!

appiummac driverがあるので、それで操作できました!
今回はRuby(irbでdebugしやすいので)ですが、TS, Pythonなどなんでも動きそう

アプリのダウンロード

macで起動させるため、Mac AppStoreからダウンロードします。
Mac AppStoreで配信されてないアプリの場合、Play Coverで起動できるかも...?

appiumのダウンロード

brew install node
npx appium driver install mac2

gem install --no-document appium_lib

npx appium

システム設定→セキュリティとプライバシー→プライバシー→アクセシビリティ→Xcode Helperを追加

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Agents/

サンプルコード

require "appium_lib"
opts = {
  caps: {
    platformName: "mac",
    'appium:automationName': "Mac2",
    'appium:bundleId': "com.apple.calculator",
  },
  appium_lib: {
    server_url: "http://127.0.0.1:4723",
    wait: 0.1,
  },
}

driver = Appium::Driver.new(opts).start_driver
driver.page_source # => xmlがstringで返ってくるのでここからDOMを探す
application_element = @driver.find_element(:class_name, 'XCUIElementTypeApplication')
puts application_element.attribute(:title) # => 計算機
element = driver.find_element(xpath: "//XCUIElementTypeButton[@label='2']") # => 2のボタンを取得
element.click # => 2のボタンをクリック

ゲームなどは、DOMがないので、スクリーンショットを撮ってクリックしたい座標を求めクリックします

element = @driver.find_element(name: "計算機")
elememnt.save_element_screenshot(element, "screenshot.png") # => スクリーンショットが撮れる

# スクロールの操作例
f1 = ::Selenium::WebDriver::Interactions.pointer(:touch, name: 'finger1')
f1.create_pointer_move(duration: 1, x: 200, y: 500, origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f1.create_pointer_down(:left)
f1.create_pointer_move(duration: 1, x: 200, y: 200, origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f1.create_pointer_up(:left)

@driver.perform_actions([f1])

操作例など詳しくは↓(seleniumを継承して上手くやっているみたい)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?