by.id(id)
:React Native 에서는 태그에 props로 testID
를 전달해 줘서 사용한다.
element(by.id('tap_me'));
by.label(label)
: Match elements with the specified accessibility label (iOS) or content description (Android). In React Native, this corresponds to the value in the accessibilityLabel prop.
element(by.label('Welcome'));
toBeVisible()
: 화면에 표시가 되는가?
: On iOS, visibility is defined by having the view, or one of its subviews, be topmost at the view's activation point on screen.
: 화면에 나타나지 않으면(표시되는 화면의 75%보다 아래에 있다면?) 실패함;;
await expect(element(by.id('UniqueId204'))).toBeVisible();
toExist()
: Expects the element to exist within the app’s current UI hierarchy.
await expect(element(by.id('UniqueId205'))).toExist();
withTimeout(timeout)
:지정된 시간 동안 예상치가 해결 될 때까지 기다립니다. 해결 전에 시간 초과에 도달하면 예상이 실패합니다.
await waitFor(element(by.id('UniqueId204'))).toBeVisible().withTimeout(2000);
tap(point)
: 지정된 지점 또는 지점이 지정되지 않은 경우 요소의 활성화 지점에서 요소의 탭을 시뮬레이션합니다.
await element(by.id('tappable')).tap();
await element(by.id('tappable')).tap({x:5, y:10});
whileElement(element)
:지정된 예상치가 해결 될 때까지 스크롤 요소를 계속 스크롤합니다. 예상이 해결되지 않는 동안 스크롤 요소의 가장자리에 도달하면 작업이 실패합니다.
await waitFor(element(by.text('Text5'))).toBeVisible().whileElement(by.id('ScrollView630')).scroll(50, 'down');
console.disableYellowBox = true;
이것은 시뮬레이터에서 dismiss, warning을 안보이게 해준다!!