首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于在SwiftUI应用程序上调整选取器值的iOS UI测试

用于在SwiftUI应用程序上调整选取器值的iOS UI测试
EN

Stack Overflow用户
提问于 2021-02-20 23:51:50
回答 1查看 189关注 0票数 2

我正在尝试实现一个UI测试,该测试调整示例选择器的滚轮的选定值,如下所示:

代码语言:javascript
运行
AI代码解释
复制
import SwiftUI

struct ContentView: View {

var colors = ["Red", "Green", "Blue", "Yellow", "White", "Black", "Purple", "Cyan"]
@State private var selectedColor = "Red"

  var body: some View {
    VStack {
      Picker("Choose a color", selection: $selectedColor) {
        ForEach(colors, id: \.self) {
          Text($0)
        }
      }
      .accessibility(identifier: "picker")
      Text("You selected: \(selectedColor)")
    }
  }
}

UI测试

代码语言:javascript
运行
AI代码解释
复制
let picker = app!.pickers["picker"].pickerWheels.firstMatch
picker.adjust(toPickerWheelValue: "Purple")

但是,当使用函数adjust(toPickerWheelValue:)时,控制盘仅在所需值的方向上跳转到列表中的下一项。在上面的UI测试示例中,结果是滚轮移动到"Green“。如果我再次调用该函数,轮子将移动一步以选择"Blue“,依此类推。为什么会发生这种情况?

使用:Xcode 12.4和iOS 14.4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-21 12:05:25

adjust(toPickerWheelValue:)的行为看起来有点违反直觉。您可以编写自己的函数来完成此任务:

代码语言:javascript
运行
AI代码解释
复制
extension XCUIElement{
    
    func selectPicker(value: String, timeout: TimeInterval) {
        let pickerWheel = pickerWheels.firstMatch
        let row = pickerWheels[value]
        
        while !row.waitForExistence(timeout: timeout) {
            pickerWheel.adjust(toPickerWheelValue: value)
        }
    }
}

然后像这样使用它:

代码语言:javascript
运行
AI代码解释
复制
let picker = app.pickers["picker"]
picker.selectPicker(value: "Purple", timeout: 1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66297762

复制
相关文章
在 SwiftUI 中用 zIndex 调整视图显示顺序
本文将对 SwiftUI 的 zIndex 修饰符做以介绍,包括:使用方法、zIndex 的作用域、通过 zIndex 避免动画异常、为什么 zIndex 需要设置稳定的值以及在多种布局容器内使用 zIndex 等内容。
东坡肘子
2022/07/28
1.8K0
在 SwiftUI 中用 zIndex 调整视图显示顺序
iOS UI 自动化测试原理以及在 Trip.com 的应用实践
笔者入职 Trip.com 已满一年,回顾这一年的工作历程,约一半的时间都在做 UI 自动化测试相关内容。从而,笔者更深入地研究了 iOS 平台下的自动化测试技术,目前也在负责部门 App 自动化测试平台的搭建和维护。故想借这篇文章一并将所踩过的坑以及学习到的技术,系统且全面地整理出分享给大家。
Swift社区
2021/11/26
2.2K0
iOS UI 自动化测试原理以及在 Trip.com 的应用实践
iOS键盘、选取器上的工具栏
我们在使用键盘的时候,在打字完毕后想要收起键盘继续操作,要么是习惯性点击界面空白处收起键盘,要么是在键盘上方点击一个“完成”之类的按钮来收起键盘。在Android上键盘的完成按钮是自带的,但是iOS没有,所以需要开发者自行添加上去一个,这里就要用到工具栏UIToolbar。
Cloudox
2021/11/23
1.5K0
iOS键盘、选取器上的工具栏
iOS指定时间戳日期选取器
因为项目特殊的需求,需要根据时间戳数组来解析出月份、日期、上午/下午,并组装显示,因此直接做了个小组件,这个需求太特殊了,我想也不太可能有太多通用性,不过做的比较易用,在不连续的时间戳显示上还是可以拿来用的,只需要自己变一变显示就好了,我是直接把时间戳分成上午/下午来显示了,要显示具体的时间也很好改。
Cloudox
2021/11/23
7630
iOS指定时间戳日期选取器
SwiftUI之常见UI
Picker(selection: $selection, label: Text("Picker")) {
大话swift
2019/11/01
9420
SwiftUI之常见UI
SwiftUI值弹出菜单
}) {
大话swift
2019/11/01
2.3K0
SwiftUI值弹出菜单
iOS_SwiftUI_iOS14_Widget
在主工程里创建附属小组件:Xcode -> File -> New -> Target -> iOS -> Widget Extension:
mikimo
2022/07/20
2.4K0
iOS_SwiftUI_iOS14_Widget
ios应用列表调整后排名规则
2013年3月。苹果修正了应用程序列表的排名规则。调整后排名规则将应用程序下载量作为最重要的排名的指标,并考虑到应用程序的质量和用户活跃因素。下载后用户的持续使用和活动成为影响排名最重要的因素。苹果这一举动的主要原因是许多应用程序开发人员选择购买下载和更新列表,以提高应用程序排名,从而形成恶性循环。那些打破列表的人从开发人员的口袋里拿钱。被列入的苹果用户将被指控为苹果不可能。最终,这将损害苹果应用商店的公平和形象。
爱学iOS的小麦子
2023/05/09
4390
ios应用列表调整后排名规则
2013年3月。苹果修正了应用程序列表的排名规则。调整后排名规则将应用程序下载量作为最重要的排名的指标,并考虑到应用程序的质量和用户活跃因素。下载后用户的持续使用和活动成为影响排名最重要的因素。苹果这一举动的主要原因是许多应用程序开发人员选择购买下载和更新列表,以提高应用程序排名,从而形成恶性循环。那些打破列表的人从开发人员的口袋里拿钱。被列入的苹果用户将被指控为苹果不可能。最终,这将损害苹果应用商店的公平和形象。
iOS Magician
2023/03/22
5860
我庆幸果断放弃了SwiftUI:它还不够成熟
编译 | 核子可乐、Tina SwiftUI 很好,但是苹果对它投资不足。 在 2019 年的 WWDC 大会上,苹果推出了一个全新的 SwiftUI 框架,这是一个现代化的 UI 界面编码结构,它是基于 Swift从头开始构建的。新框架使用声明性范例,让开发者用更少的代码编写相同的 UI。 SwiftUI 的愿景是降低开发 iOS 门槛,吸引更多开发者、丰富 iOS 的业态。并且 SwiftUI 可以“实现一次编码,可适应五端 Apple 产品平台”, 包括watchOS、tvOS、macOS 等,
深度学习与Python
2023/03/29
5.1K0
我庆幸果断放弃了SwiftUI:它还不够成熟
Ask Apple 2022 与 SwiftUI 有关的问答(上)
Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为上篇。
东坡肘子
2022/12/16
12.3K0
Ask Apple 2022 与 SwiftUI 有关的问答(上)
基于Element-ui的颜色选取器,增加最近使用的颜色。
拿我格子衫来
2023/08/24
4110
基于Element-ui的颜色选取器,增加最近使用的颜色。
估值调整 - 时间调整
时间调整(Timing Adjustment)在以下情况产生:当一个市场变量 Y 在时点 T 观察到并用 Y(T) 计算支付函数,但支付发生在观察时点 T 后的时点 M (M > T)。
用户5753894
2020/01/14
1.6K0
估值调整 - 时间调整
估值调整 - Quanto 调整
Quanto 是 quantity-adjusting 的缩写,字面上是变量调整的意思。由于 Quanto 没有好的中文翻译,我们就直接用 Quanto。带有 Quanto 衍生品的特点是标的物以货币 A 计价,但是产品本身是以货币 B 结算。
用户5753894
2020/01/14
3.7K0
估值调整 - Quanto 调整
苹果推出突破性新技术,使开发人员更加轻松快捷地创建应用
苹果软件工程高级副总裁Craig Federighi表示,“新应用程序开发技术使开发人员能够更快,更轻松,更有趣地开发应用程序,这代表着在所有苹果平台上创建应用程序的未来。”
AiTechYun
2019/06/15
2.1K0
光纤反射器如何应用于OTDR测试?
FBG光纤光栅反射器是一种波长选择性反射器,通常安装在光网络ONU前端,实现对光链路端到端衰减的精准、快速检测。相较于介质薄膜反射器,光纤光栅反射器具有以下特点:
亿源通科技HYC
2019/06/24
8670
光纤反射器如何应用于OTDR测试?
【移动开发】InfoQ 2022 年移动和物联网趋势报告
InfoQ 最引人注目的功能之一是我们的主题图,它综合了我们对不同主题如何在技术采用曲线中叠加的理解。当需要从编辑的角度决定我们想要涵盖的内容时,它们作为优先考虑不同和竞争利益的指南非常有用,但我们也相信分享它们可以帮助我们的读者更好地了解当前和未来的技术前景并帮助 告知他们的决策过程。
架构师研究会
2022/09/26
1.1K0
【移动开发】InfoQ 2022 年移动和物联网趋势报告
面向所有人的 UI 编程 :透过点按弹窗初尝 SwiftUI
「试想你是一名美术,完全不了解程序。而你眼前只有一位盲人程序员,你想让他帮你实现这个程序,你会怎样告诉你的程序员你想要的效果?」
逆锋起笔
2020/09/15
2.1K0
Groovy参数默认值在接口测试中应用
近在工作中频繁的使用到Groovy编程语言的一个特性:就是可以设置参数默认值。在编写方法或者函数的代码的时候,可以选择对参数进行一个默认值的设定。这样做就相当于对方法进行了重载。我们没写一个方法,其实就是有很多个方法重载,对于已经设置过默认值的参数。会多一个重载方法是忽略这个参数的(使用默认值)。
FunTester
2021/10/08
1.5K0
SwiftUI-开发iOS项目
Xcode 11 + macOS 10.15 可以实时预览 SwiftUI 实现的界面,这个预览可以帮助我们快速查看代码对应的效果而不需要运行。
YungFan
2019/10/25
4.8K0
SwiftUI-开发iOS项目

相似问题

在SwiftUI中使用选取器之外的选取器选择值

13

iOS UI测试-选取器滚轮仅调整一个项目的滑动

10

对iOS14 SwiftUI的选取器支持

16

SwiftUI选取器标题?

134

上一个选取器中的选取器值- CoreData/SwiftUI

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文