2012-12-05 4 views
1

xpath는 셀렌 RC &로 작성되었습니다. 이제 셀레늄 Webdriver에서 같은 xpath를 작성하고 싶습니다. 아래는 xpath입니다 : xpath :나는 셀레늄 RC로 작성된 xpath를 가지고 있으며 이제 셀레늄 Webdriver에서 같은 xpath를 작성하려고합니다. 아래는 xpath입니다

"//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td" 

이 xpath를 사용하면 "내 비밀번호를 확인하십시오"와 같은 응용 프로그램에 표시되는 오류 메시지를 캡처하고 있습니다.

이제 어떻게 Webdriver에 기록 할 수 있습니까? 나는 다른 방법을 가지고 있지만 효과가 없습니다.

"String msg= driver.findElement(By.xpath("//*[@td='error2']")).toString();" - 이것은 내가 Webdriver에서 한 것입니다.

답변

2

XPath는 Selenium RC에서 WebDriver로 변경되지 않았습니다.

일부 XPath 표현식을 WebDriver에서도 사용할 수있는 경우 (평소대로 99 %의 경우).

아래 코드는 제대로 작동하지만 HTML을 보지 않으면 대답하기가 어렵습니다.

String msg= driver.findElement(By.xpath("//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td")).getText(); 

//*[@td='error2'] -. 그것은 TD "가치"있고 Error2 ""라는 이름의 속성을 가진 요소가 "나는 당신이하지 않아도 가정 의미로이 표현 나쁜 보이는 'TD'는 당신의 HTML 속성

.

끝으로, 예 에서처럼 긴 XPath 식을 사용하지 않는 것이 좋습니다. 레이아웃의 사소한 변경으로 인해 깨질 수 있으므로 긴 계층 구조가 아닌 특정 특성을 사용하는 것이 좋습니다.

+0

귀하의 제안에 감사드립니다 & 당신이 말한대로 사용하려고합니다. 실제로 다른 창으로 전환 한 후 여기에서 문제가 발생한 주 창으로 다시 전환하지 않았습니다. 이제 xpath 메시지를 올바르게 가져 와서 콘솔에 채울 수 있습니다. 이 문제는 지금 닫을 수 있습니다. –

0

좋은 방법은 기초부터 시작하는 것입니다 시작 ...이 날을 도와주세요 : 당신이와 상호 작용 할 요소를 찾을 수있다 할 것입니다 무엇 findElement http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example

. 요소를 찾으면 요소로 수행 할 작업을 수행해야합니다. 귀하의 경우에는 요소 내부에 텍스트가 필요합니다. 따라서 WebElement 인터페이스의 적절한 기능을 살펴보고 적절한 방법 (getText)을 사용할 수 있습니다.

+0

In webdriver, getText가 없습니다. get & getTitle –

+0

driver.findElement는 webdriver 인스턴스가 아니라 webelement를 반환합니다. webdriver가 아닌 webelement 메소드를 살펴야한다. –

+0

나는 getText를 u로 사용했지만 동일한 오류가 발생합니다. 이 xpath를 사용하여 응용 프로그램에서 표시되는 텍스트를 식별 할 수 없습니다. –