[解決済み] UI テキストフィールドのテキストを削除するテスト
2023-06-10 10:59:57
質問
私のテストでは、既存のテキストを持つテキストフィールドがあります。私は内容を削除して、新しい文字列を入力したい。
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("[email protected]")
関連
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] Xcode 8.3 betaの「String interpolation produces a debug description for an optional value; did you mean to make this explicit?
-
[解決済み] NSFetchRequestのインスタンスに型を適用する方法は?
-
[解決済み] Codableクラスはプロトコルに準拠していない Decodable
-
[解決済み] Xcode UIテスト - UIテストの失敗 - 検索フィールドの「キャンセル」ボタンをタップすると、可視状態(AXアクションによる)にスクロールできない。
-
[解決済み] 弱い自分はどこへ行くのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swiftがエラーを報告。アボートトラップ:6
-
[解決済み] UIテストの失敗 - secureTextFieldにキーボードフォーカスを持つ要素もその子孫もない
-
[解決済み] Swift 1.2では、宣言は「final」と「dynamic」の両方にはなり得ないというエラーがある
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] 固定サイズのオブジェクトの配列を作成する方法
-
[解決済み] Swift - サブクラスでオーバーライドする必要があるクラスメソッド
-
[解決済み] Swift で型に表示されるテキスト表現を変更するにはどうしたらいいですか?
-
[解決済み] NSDateを使用して曜日を取得する
-
[解決済み] swift 3.0 Data to String?
-
[解決済み] rootViewControllerとアニメーションを入れ替える?