2012-04-19 2 views

답변

19

isElementPresent() - 우리가 찾고있는 요소가 어딘가에 페이지에있는 경우이 방법은 기본적으로 테스트합니다.

isVisible() - 디스플레이를 찾습니다 : none 스타일 태그 -주의하지 않으면 null 포인터를 던질 수 있습니다 ... 따라서 요소가 표시되는지 확인 먼저 요소가 있는지 확인 isElementPresent() 메소드를 호출합니다. 그런 다음 요소가 표시되는지 확인해보십시오!

요소가 보이지 않아도 isElementPresent()가 괜찮은지 확인하십시오. 예를 들어

: 당신이

selenium.isElementPresent("testinput") - returns true! 
selenium.isVisible("testinput") - returns false! 
+0

isVisible()은 널 포인터 예외를 얻지 않습니다. 그러나 요소가 없으면 SeleniumException을 얻을 수 있습니다. 일반적인 기술은'if (selenium.isElementPresent (locator) && selenium.isVisible (locator)) {... do something ...}'과 같은 것입니다. –

11

어떻게 selenium.isVisible()에 예외를 얻을

selenium.isElementPresent()selenium.isVisible()

에 true를 얻을?

부울 isElementPresent (java.lang.String의 로케이터)

지정된 요소가 어딘가에 페이지 켜져 있는지 확인합니다. 지정된 요소가 표시되면

부울에서 IsVisible (java.lang.String의 로케이터)

결정. CSS 가시성 속성을 "hidden"으로 설정하거나 "display"속성을 "none"으로 설정하여 요소 을 보이지 않게 렌더링 할 수 있습니다 ( 자체 또는 조상 인 경우 하나). 요소 이 없으면이 메서드는 실패합니다.

+2

으로 위의 구성 요소를 테스트하는 경우 지금 API는 잘못 설계된 것 같다

: 은 아래 내 테스트 응용 프로그램의 구성 요소에 대한 HTML 코드라고 할 수 있습니다. 주장을 원하면 assertElementIsPresent 또는 assertIsVisible이라고 말하십시오. isMethods는 타겟을 사용할 수없는 경우 예외를 던져서는 안됩니다. 질문은 API의 비대칭 설계에서 비롯됩니다. 그 날 나쁜 날을 보내고 있었던 것 같습니다. – boatcoder

관련 문제