>

스팬 태그 내에 img 태그로 구분 된 두 개의 문자열이있는 시나리오가 있습니다.

<span>
    text
    <img/>
    text
</span>

셀레늄과 Xpath를 사용 하여이 범위를 찾으려고 할 때 찾았지만 getText()   "texttext" 를 리턴하는 span 요소의 메소드 . 내 의도는 "text text" 를 얻는 것입니다 .

driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN").getText();

Xpath는 괜찮습니다 (올바른 웹 요소를 가져 오기 때문에 여기서 참고로 문자열을 얻는 방법은 무엇입니까? img 태그가있을 때마다 공백을 추가하고 싶습니다.

도움을 줘서 기뻐

감사합니다!


  • 답변 # 1

    .getText() 를 사용하여 직접 할 수있는 방법은 없습니다 . .getAttribute("innerHTML") 를 사용할 수 있습니다  그런 다음 두 "텍스트"문자열 사이에있는 것을 바꾸어야합니다 ( IMG 등)을 입력하십시오.

    다음은 HTML을 기반으로하는 간단한 예제입니다.

    String s = driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN").getAttribute("innerHTML"); // <span>text<img/>text</span>
    s = s.replaceAll("<img.*?/>", " ");
    System.out.println(s);
    
    

    이것은 인쇄한다

    <span>text text</span>
    
    

  • 답변 # 2

    첫 번째 자식 노드에서텍스트텍스트와 세 번째 자식 노드에서텍스트텍스트를 검색하려면 getAttribute("innerHTML") 방법을 사용한 다음 split() 방법과 마지막으로텍스트 텍스트를 인쇄하여 다음과 같이 사이에 공백을 삽입하십시오 :

    String my_string = driver.findElement(By.xpath("MY_XPATH_TO_FIND_THAT_SPAN")).getAttribute("innerHTML");
    String[] stringParts = my_string.split("\n");
    String partA = stringParts[0];
    String partB = stringParts[2];
    System.out.println(partA + " " + partB);
    
    

관련 자료

  • 이전 javascript - React 애플리케이션에서 windowlocalStorage를 사용할 수 있습니까?
  • 다음 autohotkey - AHK에서 화면에 텍스트를 표시하는 방법