在我的测试中,我有一个带有预先存在的文本的文本字段。我想删除内容并输入新字符串。
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
用硬件键盘删除字符串时,录音对我来说什么都没有产生。用软件键盘做完同样的事情后,我得到了:
let key = app.keys["Usuń"] // Polish name for the key
key.tap()
key.tap()
... // x times
要么
app.keys["Usuń"].pressForDuration(1.5)
我担心自己的测试取决于语言,因此我为受支持的语言创建了以下内容:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usuń"].exists {
return self["Usuń"]
} else {
return self["Delete"]
}
}
}
}
在代码中看起来更好:
app.keys.deleteKey.pressForDuration(1.5)
但是非常脆弱。从模拟器退出后,Toggle software keyboard
被重置,并且我的测试失败。我的解决方案不适用于CI测试。如何解决这个问题才更普遍?
我写了一个扩展方法来为我做这件事,它非常快:
extension XCUIElement {
/**
Removes any current text in the field before typing in the new value
- Parameter text: the text to enter into the field
*/
func clearAndEnterText(text: String) {
guard let stringValue = self.value as? String else {
XCTFail("Tried to clear and enter text into a non string value")
return
}
self.tap()
let deleteString = String(repeating: XCUIKeyboardKey.delete.rawValue, count: stringValue.count)
self.typeText(deleteString)
self.typeText(text)
}
}
然后可以很容易地使用它:
app.textFields["Email"].clearAndEnterText("newemail@domain.com")
有没有一种方法可以完全删除TextField的边框?例如,我想显示该文本中的文本:
我目前正在尝试构建一个行为类似于命令shell的应用程序。我想显示我给它的路径(或' 我这样做是为了在用户提交文本时文本字段会被清空。提交后,它将字段的文本设置为我的路径,以达到类似的效果,但用户仍然可以在输入文本时删除该路径。 如何使我的路径文本显示在字段中,但用户无法删除它? 我已经尝试过这个,但它只在提交后更新插入符号位置:
问题内容: 我需要在所有索引到Elasticsearch的文档中删除一个字段。我该怎么做。任何删除查询都可以帮助我实现这一点。 问题答案: @backtrack所说的是对的,但是在Elasticsearch中有一种非常方便的方法。Elasticsearch将抽象出删除的内部复杂性。您需要使用更新API来实现- 您可以在此处找到更多文档。 注意:从Elastic Search 6开始,您需要包括一个
问题内容: 我在使用iOS SDK 8的Swift时遇到一个问题 我使用了回调来获取数据背景,并且在获取数据时,我想设置一个文本字段值并更新屏幕。 这是我的代码: 运行此代码,将正确获取数据并且txtTest没有更新,但是当我点击txtTest时,将显示该值。那么有什么方法可以强制更新UI?或向UI线程发送消息? 问题答案: 每个人都想在Swift中进行UI更新时遇到的同一问题:永远不要在任何辅助
$format = new \Vtiful\Kernel\Format($fileHandle); $style = $format->strikeout()->toResource();
问题内容: 我有一个像这样的textfile.txt: 如何删除最舒适的前三行和最后一行? 问题答案: