1. 程式人生 > 其它 >ios 自動化測試: 解決app之間互動 操作

ios 自動化測試: 解決app之間互動 操作

ios 自動化測試:解決 app 之間互動 之 使用 xcuitest - xiaoyanxuzi - 部落格園 (cnblogs.com)

接上一篇

為了實現從iMessage 中點選 link,開啟測試 app。上一篇中介紹了使用xcuitest 在command line 中呼叫的方法。是一個可以用在其他除了 iMessage以外的app的一個方法。更簡單一些,我們可以直接在指令碼中 啟動 iMessage app。示例

if __name__ == '__main__':

    ios_driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub',
                                  desired_capabilities=iphoneXs_capabilities)
    ios_driver.execute_script('mobile: activateApp', {'bundleId': 'com.apple.MobileSMS'}) #這裡的appium 命令利用好了,很重要
  
     ios_driver.find_element_by_name('composeButton').click()

     ios_driver.find_element_by_name('To:').click()
     ios_driver.find_element_by_name('To:').send_keys('[email protected]\n')

     ios_driver.find_element_by_name('messageBodyField').click()
     ios_driver.find_element_by_name('messageBodyField').send_keys(mhs_link)
     ios_driver.find_element_by_name('sendButton').click()
     time.sleep(3)

     url_links = ios_driver.find_elements_by_name('com.apple.messages.URLBalloonProvider') # xpath: //XCUIElementTypeLink[@name="com.apple.messages.URLBalloonProvider"]
     print(len(url_links))

     if len(url_links) > 0:
         url_links[-1].click() # click last link just send

  

  在元素識別中,如果appium inspector 不夠快速時候,可以使用 xcode xcuitest 的錄製功能,可以更快速我們找到想要的元素,比如此處的 link 在 appium inspector 中定位時,層級太多,不容易找到,可以藉助 xcode 的錄製,和 po 獲得元素列表。另外一點是可以充分利用 appium inspector 的 search 功能。