Selenium을 사용하여 웹 요소와 상호 작용할 때, 텍스트 내용은 다양한 접근 방식을 통해 얻을 수 있습니다. 그 중에는 .text 및 .get_attribute("innerHTML")가 있습니다. 상호 교환 가능한 것처럼 보일 수 있지만 하나가 다른 것보다 더 적합한 경우 두 인스턴스와 특정 인스턴스 사이에는 근본적인 차이가 있습니다.
.get_attribute("innerHTML" )는 모든 콘텐츠와 마크업을 포함하여 요소의 innerHTML을 검색합니다. 이 메서드는 지정된 이름을 가진 속성을 먼저 가져오려고 시도합니다. 속성이 없으면 동일한 이름의 속성을 반환합니다. 둘 다 발견되지 않으면 None을 반환합니다.
참으로 간주되는 값(참 또는 거짓과 동일)은 부울로 렌더링됩니다. 반대로, None이 아닌 다른 모든 값은 문자열로 반환됩니다. 존재하지 않는 속성이나 속성의 경우 None이 반환됩니다.
인수:
예:
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.text는 마크업이나 마크업을 제외하고 요소의 텍스트 콘텐츠를 검색합니다. 스타일링.
정의:
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
예:
# Get the text of an element text = target_element.text
.text와 .text의 표면적인 유사성에도 불구하고 .get_attribute("innerHTML")에는 고려해야 할 중요한 차이점이 있습니다.
웹 페이지를 로드할 때 브라우저는 HTML과 DOM 객체를 생성합니다. HTML 코드에 정의된 속성은 이러한 DOM 객체의 속성이 됩니다. 그러나 속성이 특정 요소에 대한 표준이 아닌 경우 해당 속성이 없습니다.
이러한 경우 다음 방법을 사용하여 속성에 액세스할 수 있습니다.
HTML의 표준 속성은 일반적으로 해당 속성과 동기화됩니다. 즉, 속성이 수정되면 속성이 자동으로 업데이트되고 그 반대의 경우도 마찬가지입니다.
Python에서는 점 표기법을 사용하여 속성에 액세스합니다(예: someObj .이름). 인스턴스 변수이거나 속성으로 정의된 특수 getter 및 setter 메서드를 통해 액세스할 수 있습니다.
요소 콘텐츠를 추출할 때 .text와 .get_attribute("innerHTML") 중에서 선택하는 것은 다음에 따라 달라집니다. 자동화 작업의 특정 요구 사항. 마크업이나 스타일 없이 눈에 보이는 텍스트를 얻는 것이 목표라면 .text가 이상적입니다. 또는 모든 요소와 해당 형식을 포함하여 HTML 콘텐츠의 완전한 표현이 필요한 경우 .get_attribute("innerHTML")가 적절한 선택입니다.
위 내용은 셀레늄 `.text` 대 `.get_attribute('innerHTML')`: 언제 각각 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!