0

문자열에 오류가 발생하면 루프를 종료하고 싶습니다. null인지 검사 할 수 없습니다.루프에서 JavascriptExecutor를 어떻게 확인할 수 있습니까?

루프는 2 개의 스크립트를 가져 와서 모든 셀을 사용하며 결국에는 컴파일러에서 오류가 발생합니다.

마지막 문자열 (오류 시간)을 계산하기 전에 어떻게 종료 할 수 있습니까?

감사

String script3 = "return document.getElementsByTagName('g')[" + f9 + "].textContent"; 
n = (String) ((JavascriptExecutor) driver).executeScript(script3, hiddenDiv); 

n

는 모든 태그 (g)를, 마지막에 null가 아닌 오류를 줄입니다합니다, 그래서 내가 루프를 중지 캔트.

오류가 발생하기 전에 루프를 중지하고 싶습니다.

태그를 계산하려면 다음과 같이하십시오.

답변

0

findElements 방법

List<WebElement> gTags = driver.findElements(By.tagName("g")); 

그리고 g 태그의 수를 얻을 수를 사용하여 당신은 모든 g 태그를 얻을 수있는 루프

for(...) 
{ 
    try 
    { 
     //your javascript code HERE 
    } 
    catch(Exception ex) 
    { 
     string exMessage = getMessage(); 
     break; 
    } 
} 
+0

캐치 안에 무엇을 쓰나요? – Mind5

+0

ex에서 예외에 대한 모든 정보를 얻을 수 있습니다 –

1

을 오류를 잡기 및 파괴에 대한 사용 trycatch

int size = gTags.size(); 
+0

하지만 g 태그는 숨겨진 요소 안에 있습니다. – Mind5

0

몇 가지 방법이 있습니다. 나는 아래처럼 그것을 할 것이다. 기본적으로 Javascript를 사용하여 g 태그를 모두 가져 와서 .textContent을 수집 한 다음 List을 Java 코드로 반환합니다. 그런 다음 Java에서 List을 반복하여 수행 할 수 있습니다.

String script3 = "var strings = []; var g = document.getElementsByTagName('g'); for (var i = 0; i < g.length; i++) { strings.push(g[i].textContent); } return strings;"; 
List<String> s = (List<String>) ((JavascriptExecutor) driver).executeScript(script3); 
System.out.println(s); 
관련 문제