我正在尝试在ios UITest中编辑TextInput React Native组件的文本。我已经向组件添加了testID
道具。
两个问题:
App.js
import React from "react";
import { StyleSheet, TextInput, View } from "react-native";
export default function App() {
return (
<View>
<TextInput testID="username" placeholder="Enter your username" />
</View>
);
}
TestappUITests.swift
import XCTest
class TestappUITests: XCTestCase {
...
func testExample() {
// UI tests must launch the application that they test.
let app = XCUIApplication()
app.launch()
// Write test code here
}
}
答案 0 :(得分:1)
accessibiltiyIdentifier
。您可以通过在xcode中打开“调试视图层次结构”功能并选择元素来在xcode中对其进行查看。
RCTUITextField
,因此您需要使用textFields
实例属性。 然后,您可以使用RN testId选择元素。从那时起,使用tap和typeText方法很容易进行操作。
import XCTest
class TestappUITests: XCTestCase {
...
func testExample() {
// UI tests must launch the application that they test.
let app = XCUIApplication()
app.launch()
// Give element focus
app.textFields["username"].tap()
// Type text in the element
app.textFields["username"].typeText("super-user");
}
}
如果您尝试通过testID获取其他类型的组件,则可以检查“调试视图层次结构”以了解您拥有哪种类型的元素。然后确定应该使用什么查询而不是textFields
。
仅供参考,.otherElements
实例属性用于选择React Native Views。