당신이 원하는 것은 당신의 a
요소에있는 텍스트 노드에 의해 직접 표현되는 텍스트입니다. 현재 Selenium에는 요소의 텍스트를 가져 오지 않고 자식 텍스트도 가져올 수있는 메서드가 없습니다. 다음을 수행하여 DOM에서 텍스트를 직접 추출 할 수 있습니다.
String text = (String) ((JavascriptExecutor) driver).executeScript(
"var parent = arguments[0]; "+
"var child = parent.firstChild; "+
"var ret = ""; "+
"while(child) { "+
" if (child.nodeType === Node.TEXT_NODE) "+
" ret += child.textContent; "+
" child = child.nextSibling; "+
"} "+
"return ret;", a);
(I 정기적으로 자바 코딩 한 이후 잠시되었습니다. 이것은 파이썬 코드에서 변환됩니다. 그것을 표현하는 더 좋은 방법이있을 수 있습니다.)
변수 a
것 요소를 찾기위한 Seleniums 메서드 중 하나를 사용하여 이미 발견 한 앵커가 될 수 있습니다. 더 미세한 것이 필요한 경우 (예 : 공백이나 원하지 않는 다른 외부 문자를 제거한 경우) Java 측에서 수행 할 수없는 경우 자바 스크립트 측의 위 코드에 추가 할 수 있습니다. 예를 들어, 앞뒤에 공백을 없애려면 return ret.trim()
을 사용할 수 있습니다.
크롬, 파이어 폭스 및 IE 10-11 위의 방법을 문제없이 사용했습니다. DOM의 가장 기본적인 레벨에서 다루지 않는 것을 볼 수 없으므로 모든 브라우저에서 작동 할 것으로 기대합니다.
감사합니다. 나는 그것을 확실히 사용하려고 노력할 것이다. –