사이트에서 실행할 스크립트를 생성하기 위해 browsermob과 selenium을 사용하고 있습니다. 페이지의 모든 요소를 특정 이름으로 가져 오려고합니다. 내 문제는 내가 사용하려고 할 때 window.document.getElementsByName("name");
browsermob는 window
가 정의되지 않았다고 말합니다. 어떻게 창을 정의합니까?browsermob을 사용하여 셀렌에서 창 선언하기
1
A
답변
3
selenium.getEval()을 호출해야합니다. 이 호출의 서명은 실행되는 JavaScript 인 문자열 인수를 브라우저에 입력하고 문자열 표현이 반환되는 문자열을 반환한다는 것입니다.
마지막 부분 - 문자열 표현 -이 중요합니다. 당신은 확실히 BrowserMob 스크립트에서이 작업을 수행 할 수는 없지만 :
는var elements = window.document.getElementsByName("name");
또한이 작업을 수행 할 수 없습니다
var elements = selenium.getEval('return window.document.getElementsByName("name")');
을 그 두 번째 예를 들어 당신이해야 할 일에 가까운 반면, 그렇지 않아 getElementsByName은 문자열로 변환 된 DOM 객체의 배열을 반환하기 때문에 작동 할 것입니다. 대신, 을 당신이 그 요소들로 무엇을하고 싶은지를 결정하고, 당신이 원하는 것을 정확하게 리턴하는 더 큰 JS 스 니펫을 eval에 생성 할 필요가 있습니다.
예를 들어,이 페이지의 두 번째 링크의 href 속성을 반환합니다
var secondHref = selenium.getEval('return window.document.getElementsByName("a")[1].href');
나는이 도움이되기를 바랍니다. 중요한 점은 BrowserMob 스크립트는 JavaScript로 작성 될 수 있지만 실행되는 JavaScript 환경은 이 아니며 브라우저에는이 아님을 이해해야합니다. 브라우저에서 임의의 JavaScript를 평가하려면 getEval()을 거쳐야하므로 약간의 혼동을 줄 수있는 약간의 JavaScript-in-JavaScript 상황이 생성됩니다.
관련 문제
- 1. 셀렌에서 KeyStroke를 브라우저 창 (로케이터 제외)에 보내는 방법
- 2. xpath를 사용하여 셀렌에서 텍스트를 검색 하시겠습니까?
- 3. regex를 사용하여 셀렌에서 동적 체크 박스 선택
- 4. 셀렌에서 2 키를 누르는 방법
- 5. libxml-ruby를 사용하여 네임 스페이스 선언하기
- 6. flex에서 변수 선언하기
- 7. JavaScript 변수를 효율적으로 선언하기
- 8. SQLite에서 데이터 유형 선언하기
- 9. Objective-C : UIButton 선언하기
- 10. 함수에서 정적 변수 선언하기
- 11. 메서드에서 보호 된 변수 선언하기
- 12. 셀렌에서 팝업/조회 창을 처리하는 방법
- 13. VB : For 루프에서 변수 선언하기
- 14. dijit.form.select의 값을 프로그램 적으로 선언하기
- 15. 응용 프로그램 대리자에 UIView 선언하기
- 16. xaml에서 클래스 네임 스페이스 선언하기
- 17. 객체의 프로토 타입 선언하기 리터럴
- 18. OCaml : 정의하기 전에 함수 선언하기
- 19. Ruby on Rails에서 연관성 선언하기
- 20. 모델에서보기 및 인스턴스로 변수 선언하기
- 21. Java bean에서 enum 변수 선언하기
- 22. 셀렌에서 버튼을 활성화 또는 비활성화하는 방법
- 23. 셀렌에서 typeof 연산자를 사용할 수 있습니까?
- 24. 셀렌에서 브라우저 옵션을 사용하는 방법은 무엇입니까?
- 25. GWT id 요소가 셀렌에서 매번 변경됩니다.
- 26. wmctrl을 사용하여 창 닫기
- 27. pyatspi를 사용하여 창 닫기
- 28. 모범 사례 - Java 인터페이스의 일부로 이벤트 선언하기
- 29. DTD에서 ANY 이름을 가진 요소 선언하기
- 30. 리눅스 플랫폼에서 c에서 bool 변수 선언하기
감사합니다. 내가 물어 본 후에 대부분을 알아 냈지만 가지고있다. selenium.getEval ('window.document.getElementsByName ("a") [1] .href'); 반환은 무엇을합니까? – chromedude