2013-06-21 2 views
0

CSS 요소의 텍스트에 액세스하기 위해 셀레늄을 사용하려고합니다.CSS 요소 셀렌의 텍스트 가져 오기

WebElement test = driver.findElement(By.cssSelector("div.CLFSBTextWithLink")); 
System.out.println(test.getText()); 

이것은 내가 지금하고있는 일이지만 출력은 비어 있습니다.

예를 들어 "Company"라는 웹 사이트에 링크 또는 텍스트가있을 수 있으며 Selenium을 사용하여 요소의 위치를 ​​확인하면 대상이 css = div.CLFSBTextWithLink라고 표시됩니다. 이제 나는 어떻게 든 "회사"라는 가치를 얻을 수 있기를 원한다.

+2

당신이 어떤 결과를 기대합니까? 여기서 당신이 달성하고자하는 것은 분명하지 않습니다. –

+0

예를 들어 "회사"라는 웹 사이트에 링크 또는 텍스트가있을 수 있으며 Selenium을 사용하여 요소의 위치를 ​​확인할 때 대상이 css = div.CLFSBTextWithLink라고 표시됩니다. 이제 나는 어떻게 든 "회사"라는 가치를 얻을 수 있기를 원한다. – user2405920

+0

이것은 절대적으로 효과가 있습니다. 페이지에서 "div.CLFSBTextWithLink"와 일치하는 요소가 하나만 있는지 확인하십시오. 그 중 더 많은 것이 있으면 선택자를 변경하거나 모두 반복해야합니다. 요소 주변에 HTMl의 관련 부분을 표시 할 수 있다면 올바른 선택 전략을 제안 할 수 있습니다. –

답변

2

당신이 http://viewer.opencalais.com/로 가서 "밥 밥이라는 사람 이 있었다"같은 것을 입력하고 제출 명중 경우에, 당신은 엔티티 사람에 따라 이름 밥 밥을 참조하십시오. 나는 그 이름을 "Bob Bob" 기본적으로 얻으려고 노력하고있다. getText() 문서에서


:

이 요소

의 가시 (즉, CSS에 의해 숨겨져) innerText와 얻기 그러나 텍스트가 처음에 숨겨져 있습니다. 먼저 Person 요소를 펼쳐서 표시해야합니다.

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

을하지만 항상 당신이 바로 확장을 클릭하고 있는지 확인이 특정 "밥 밥"경우에, 당신은 사용할 수 있습니다. 더 일반적으로 만들려면, 이것은 "사람"카테고리 옆에있는 확장을 선택합니다 :

//input[@class='collapseExpandIcon' and (../text()='Person')] 

및 설명 :

SELECT AN <input> ELEMENT 
//input[             ] 
     THAT IS AN EXPANDER 
     @class='collapseExpandIcon' 
            AND ITS PARENT NODE HAS TEXT "Person" 
            and (../text()='Person')