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 功能。