2011-04-01 2 views

답변

2

아니요, 라이브러리 아키텍처를 고려할 때 불가능합니다. 특정 브라우저가 요소를 드라이버에 직접 노출한다는 보장은 없습니다. 그러나 WebDriver.executeScript()를 통해 JavaScript 함수에 인수로 WebElement 객체를 전달할 수 있습니다. 이렇게하면 자바 스크립트를 통해 W3C DOM 요소의 속성과 메소드를 사용할 수 있습니다.

+0

안녕하세요 짐, 나는 각 페이지가로드 될 때마다 실행되는 오버 헤드가 많은 것처럼 보입니다. (제 경우에는로드 된 모든 페이지가 텍스트를 처리하도록 특정 형식으로 HTML을 정규화해야했습니다. 노드 등). 따라서 Javascript 의존성에서 멀리 떨어져 있습니다. – KJW

+0

오버 헤드는 실제로 원하는만큼 수행되지 않습니다. 더 많은 컨텍스트가 도움이 될 수 있습니다. 작은 비밀을 알려 드리겠습니다. 대부분의 드라이버에 대한 대부분의 WebDriver 기능은 JavaScript로 구현됩니다. 죄송합니다. 답변을 듣고 싶지 않지만 질문에 대한 대답은 여전히 ​​"아니요. WebElement를 org.w3c.dom.Element로 변환 할 수 없습니다." 나는 적어도 당신에게 당신이 원하는 기능을 얻을 수있는 해결 방법을 제공하려고했다. – JimEvans

+0

안녕하세요 짐! 마지막으로, SO에 핵심 기여자! 그 통찰력을 주셔서 감사합니다. 몇 달 동안 저에게 일한 경험이 있습니다. Javascript 접근 방식을 한 번 더 추구 할 것입니다. Javacript가 WebDriver 기능에서 어떤 역할을하는지에 대한 자세한 설명이 담긴 wiki 페이지가 있습니까? 그래서 기본적으로 browser.findElement (By.id ("menu"))는 실제로 browser.executeScript (document.findElementById ("menu"))입니까? – KJW