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('test1@163.com\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 功能。

posted @ 2022-04-07 15:05  xiaoyanxuzi  阅读(125)  评论(0编辑  收藏  举报