2014-07-21 5 views
0

"저장"버튼을 클릭하면 입력 된 데이터를 기반으로 세 가지 경고가 발생할 수 있습니다. "Saved successfully", "User already registered"및 "Username already exists"경고를 줄 수 있습니다. 나는 시도했다 :Selenium에서 경고 처리

driver.findElement(By.id("dnn_ctr5995_View_btnsavesession")).click(); 
    Thread.sleep(10000); 
Alert alert = driver.switchTo().alert(); 
    String A = alert.getText(); 
    if (A == "Username already exist"){ 
     System.out.println("Admission number already exist."); 
     alert.accept(); 
    } else if (A == "User already registered"){ 
     System.out.println("User already registered"); 
     alert.accept(); 
    } else if (A == "Saved Successfully."){ 
     System.out.println("Saved Successfully."); 
     alert.accept(); 
    } 

그러나 No Alert 현재 예외를 보여주고있다. 나는 수면 시간을 늘리려고했지만 여전히 같은 예외를 보여줍니다.

+0

브라우저로 경고를 나타내거나 HTML 팝업입니까? –

+0

아약스 팝업 알림 및 브라우저 제어 알림이이 애플리케이션에 사용됩니다. – Dinu

+0

@Dinu : 저장 버튼과 자바 스크립트 메소드를 HTML로 공유 할 수 있습니까? –

답변

0

:

driver.findElement(By.id("dnn_ctr5995_View_btnsavesession")).click(); 

또는 요소의 'ID가'모든 인스턴스에 변경되는 경우

는, 다음이 변경 될 수 있습니다 실제로 alert.accept()이라고 부르는 것은 "User already registered".equalsIgnoreCase(A) 대신 A == "User already registered"을 사용하고 있기 때문입니다. if 조건을 변경하면 문제가 해결됩니다.

0

'저장'ID가 요소에 없기 때문에 실제로 클릭하지 않는 것처럼 보입니다. 다음과 같이 그것을보십시오 : 다음

driver.findElement(By.cssSelector("[id*=save"])).click(); 

와 경고를 잡으려고 노력. 선택자에 '*'가 표시됩니다.

+0

이것은 잘못된 CSS 선택자':)'입니다. 속성을 식별하려고 할 때'[]'로 감싸 야합니다. 예 :'[id * = 'save'] ' – sircapsalot

+0

오타를 유감스럽게 생각합니다. 실수 수정 : – Stas

+0

HTML 태그에서 언급 한 것과 동일한 ID를 사용했지만 여전히 동일한 오류를 표시하고 있습니다. – Dinu

0

Html 공유에 따라 요소의 ID는 "저장"되지 않습니다. 따라서 출력을 얻기 위해 공유 코드의 첫 번째 줄을 약간 수정해야합니다.

변경 요소 식별 태그 : 난

driver.findElement(By.xpath("//*[contains(@id,'_View_btnsavesession')]")).click(); 
+0

HTML 태그에서 언급 한 것과 동일한 ID를 사용했지만 여전히 동일한 오류를 보여줍니다. – Dinu