저는 WWW :: Mechanize :: Firefox의 eval_in_page
을 통해 jQuery/Angular calls를 실행하려고합니다. 오류가 발생하기 때문에 범위 문제가 있다고 생각합니다.WWW :: Mechanize :: Firefox를 통해 jQuery 또는 Angular 함수를 호출하려면 어떻게해야합니까?
이 코드를 실행하려고하면 :
angular.element(document.getElementsByClassName("input")[0]).triggerHandler(('change');
나는이 응답을 얻을 :
MozRepl::RemoteObject: ReferenceError: angular is not defined at ...
이 코드 실행하려고하면 :
$(".input").val("Foo")
나는이 응답을받을를 :
MozRepl::RemoteObject: ReferenceError: $ is not defined ...
프레임 워크에 액세스 할 수없는 것 같습니다. 페이지가로드 된 것처럼 보입니다. 브라우저 콘솔에서 코드를 실행하면 정상적으로 작동합니다.
파이어 폭스 내부 정보에 대해 충분히 알지 못하지만 문제는 [this] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts)와 관련이 있다고 생각합니다. ([this] (https://bugs.jquery.com/ticket/4151)). eval_in_page는 DOM의 특정 부분에만 액세스 할 수있는 샌드 박스에서 실행됩니다 (관련 코드는 [여기]입니다 (https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.79/lib/WWW/). Mechanize/Firefox.pm # L532)). jQuery를 샌드 박스에로드 할 수는 있지만 왜 jQuery 및/또는 Angular를 사용하여 정확히 무엇을 하려는지 확실하지 않습니다. – ThisSuitIsBlackNot
Angular에서 많이 사용하는 웹 페이지 인터페이스를위한 코드를 작성하려고합니다. 특히, ID 또는 이름 요소가없는 입력 필드를 채우려고합니다. 해당 필드가 변경 이벤트를 감지하면 일정 관리를 수행하는 각도 정의 된 함수를 트리거하는 것으로 보입니다. 블러 이벤트를 감지하면 텍스트 입력을 스팬 내에서 예쁜 "태그"로 변환합니다. 이 관리 때문에 나는 가치를 채워야하고 그 기능을 여행 할 필요가 있다고 믿는다. –