2017-11-06 4 views
1

나는 다음과 같은 HTML 코드를 한 : 셀레늄 WebDriver에서셀레늄 자바를 사용하여 라디오 버튼의 텍스트를 얻는 방법

<form action=""><input type="radio" id="r1" name="city" value="la">Los Angeles</br><input type="radio" id="r2" name="city" value="sf">San Francisco</br>input type="radio" id="r3" name="city" value="ny">New York</br><input type="radio" id="r4" name="city" value="chicago">Chicago</br></form> 

자바를 사용하여, 나는 각 라디오 버튼 (그래서 "로스 앤젤레스의 텍스트를 캡처하는 것을 시도하고있다 내가 원할 때 ","등 SF "라", "샌프란시스코"

public static void radioTest(WebDriver driver){ 
List<WebElement> radios = driver.findElements(By.name("city")); 
for(int i = 0; i<radios.size(); i++){ 
    radios.get(i).click(); 
    System.out.println(radios.get(i).getAttribute("value")); 

} 

}

여기서 문제는 그것이 반환하는 것입니다, 등) 여기 내 코드입니다 " 실제 텍스트 ("로스 앤젤레스", "샌프란시스코 o "등) 누구든지 조언을 제공 할 수 있습니까? 고맙습니다.

답변

0

크롬 또는 사파리에 개발자 도구를 설치하여 속성 및 런타임 값을 확인할 수 있습니다. 크롬에서 개발자 도구를 열고 '요소'탭으로 이동하여 관심 요소를 클릭하십시오. 오른쪽에있는 요소의 속성을 보여줍니다. 거기에서 관심있는 속성/속성을 볼 수 있으며 그에 따라 코드를 사용하여 값을 얻을 수 있습니다. gettext에() 대신 값 속성의 방법은 "라"를 반환

for(int i = 0; i<radios.size(); i++){ 
    radios.get(i).click(); 
    System.out.println(radios.get(i).getText()); 

} 
1

확인, "SF"등 당신은 당신이 가지고있는 텍스트, getAttribute() 방법을 사용하여 value 속성을 추출하는 beacuse getText() 방법을 사용하십시오.

이 코드를 시도하고 나에게 어떤 문제를 konw하자가 발생했습니다 :

public static void radioTest(WebDriver driver){ 
List<WebElement> radios = driver.findElements(By.name("city")); 
for(int i = 0; i<radios.size(); i++){ 
    radios.get(i).click(); 
    String cityName=radios.get(i).getText(); 
    System.out.println("Name of city: "+cityName); 
} 

} 
+0

가 알려줘 당신이 경우 위의 코드에 문제가 있으면 알려주십시오. –

+0

안녕하세요, 코드를 사용해 보았습니다. 빈 줄이 생깁니다. (공백 이외의 다른 것은 출력하지 않습니다.) –

+0

comment this line radios.get (i) .click(); 한 번 확인하십시오. 또한 디버그하여 라디오가 귀하의 경우에 무엇을 반환하는지 확인하십시오. –

0

을 확인하여

+0

「도시명 :」이 4 번 인쇄되고 있습니다. cityName 변수가 공백으로 표시됩니다. –

+0

이상한 한 번 확인해 보겠습니다. – iamsankalp89

+0

내 실제 웹 사이트에서 연습 할 수 있습니다. –

0

는 다음과 같은 코드 블록을 사용하여 각 라디오 버튼의 텍스트를 캡처하려면 :

List<WebElement> my_cities = driver.findElements(By.xpath("//input[@name='city' and @type='radio']")); 
for (WebElement city:my_cities) 
    System.out.println("City name is : " + city.getAttribute("innerHTML")); 
+0

"city name is :"이 4 번 표시됩니다 (city.getAttribute (" innerHTML "))이 되어야만합니다. –

+0

질문에 실제 HTML과 같이'HTML'을 포맷 할 수 있습니까? – DebanjanB

+0

다음은 실제 페이지입니다 (inspect를 마우스 오른쪽 버튼으로 클릭하면됩니다) : http://kanglincheng.com/selenium2.html –

관련 문제