获取IOS模拟器文本字段中的值

Posted

技术标签:

【中文标题】获取IOS模拟器文本字段中的值【英文标题】:Getting the value in the textfield in IOS Simulator 【发布时间】:2018-10-05 06:00:16 【问题描述】:

我是 Swift 和 x-code 的新手。我目前正在开发一个只有一个文本框和一个提交按钮的应用程序。

我正在编写一个类似这样的测试用例-“每当我点击提交按钮时,我在文本字段中给出的文本都应该被验证。”

当我单击提交按钮时,如何从文本框中获取 文本?在运行测试用例时

【问题讨论】:

提问时请更具体一点:到目前为止,您对代码示例做了哪些尝试? (I downvoted because there is no code) / 您有什么期望? / 您会遇到什么错误? 请查看“How to ask”以获得帮助 你可以在UIButton点击textField.text!获得textField值。 【参考方案1】:

要找出单击按钮的时间,您必须在某个 Target 中为您的按钮定义一个 Action……通常是您的视图控制器。在 Apple 的文档中搜索“Target Action”设计模式,您应该会找到教程信息。

要获取文本字段的值,您可以简单地获取它的 text 属性。但是,要获得对文本字段的引用,您的视图控制器将需要一个引用文本视图的 Outlet。在文档中,您可以搜索“Outkests”或 IBOutlet 来查找教程。

【讨论】:

【参考方案2】:

为该textField 创建一个IBOutlet 并将其连接到情节提要中(见附件)

@IBOutlet weak private var textField: UITextField!

并使用textField.text 在您的 IBAction 中获取处理点击事件的文本文件值

【讨论】:

【参考方案3】:

首先创建文本字段的@IBOutlet 并创建提交按钮的@IBAction。并像这样在@IBAction 中验证它:-

@IBOutlet weak var textfieldOutlet: UITextField!

@IBAction func submit(_ sender: UIButton)

  if textfieldOutlet.text?.isEmpty == False
  
     print(textfieldOutlet.text);
  

*在打印值上设置断点,然后得到值

【讨论】:

【参考方案4】:

在 UI 测试中,您可以使用 value 属性从代表 UITextFieldXCUIElement 访问文本。

let app = XCUIApplication()
let textField = app.textFields.element
textField.typeText("test text")
let text = textField.value as? String // should be "test text"

【讨论】:

以上是关于获取IOS模拟器文本字段中的值的主要内容,如果未能解决你的问题,请参考以下文章

文本字段在 iOS 模拟器上不显示键盘

Sencha Touch 2 文本框在 iOS 7 中的焦点问题

当我在 swift 中单击单元格中的文本字段时,键盘没有出现

用于 XCUITest 的 iOS 模拟器中的强制软件键盘

无法在 iOS 11 GM 中更改多个文本字段颜色

无法使用Mac键盘在iphone模拟器中键入文本字段?