공부
UITest ) UIButton의 isSelected가 항상 false로 나온다면
Zedd0202
2020. 9. 2. 15:51
안녕하세요 :) Zedd입니다.
지금..어이없는 이유로..UITest가 실패하고 있네요..그래서 기록해보고자합니다! :D
문제
~ UITest쪽 ~
XCTAssertTrue(homeButton.isSelected)
분명 위 버튼은 무조건!!!! isSelected가 true임에도 불구하고 false가 나온다는 점입니다.
이거때문에 UITest가 실패하고 있어요.....
원인
원인은 보이스오버 대응시 이런저런 사정으로 인해...
~ App Code쪽 ~
homeButton.accessibilityTraits = .none
accessibilityTraits을 none으로 준 상황입니다.
여기에 따르면, XCUIElement의 isSelected프로퍼티는 accessibilityTrait에 따라 다르다고 해요.
기본적으로 homeButton은 UIButton 때문에 accessibilityTrait은 기본적으로 button이지만,
제가 none으로 줬으니..isSelected가 작동을 안하는 것으로 추측이 됩니다.
이런식으로 accessibilityTraits을 override해줘서 해결합니다.
저는
homeButton.accessibilityTraits = .none
이렇게 accessibilityTraits을 none으로 줬지만,
값을 가져올 때는 isSelected상태면 selected상태를 반환하는 것이죠.
accessibilityTraits을 건드리지 않는 것이 가장 좋겠지만...저는 어쩔 수 없는 상황이네요 :)
그냥 UIButton extension으로는 해결이 안됩니다 ㅠㅠ
참고 :