2016-08-23 2 views
0

배치 파일을 통해 Mozilla Firefox를 열고 네트워크 모니터 (Ctrl + Shift + Q)를 연 다음 특정 URL을 탐색 할 수 있습니까? 일단 완료되면 (어쩌면 각 작업 사이에 타이머 지연이있을 수 있습니다) Firefox가 닫힙니다.배치 파일을 통해 Mozilla Firefox 제어

네트워크 모니터가 자동으로 내용을 파일로 내보내므로 매번 수동으로 확인하지 않고도 특정 URL의 내용이 예상대로 유지되도록 일정을 자동화하려고합니다.

기본적으로 웹 개발을 돕기위한 것입니다.

+2

[순수와 것을 수행 tag : batch-file]은 (거의) 불가능합니다. [tag : auto-it] 또는 [tag : autohotkey]는 어떻습니까? – aschipfl

+0

GUI 조작은 [배치 파일] 태그가있는 질문에 PowerShell을 추천하는 두 번 중 하나입니다. – SomethingDark

+0

좋아, 그럼 새로운 질문을 어떻게하면 좋겠어? – DARKOCEAN

답변

0

웹 사이트의 내용이나 사용 가능한 문서 만 확인하려는 경우 wget을 살펴볼 수 있습니다. 이를 통해 로그 또는 파일 다운로드를 보관할 수 있습니다.

0

그래서, 구현 결국 파이어 폭스 애드온 SDK 확장 파이어 폭스 시작시

  • 는 것을 : 기다립니다 현재 탭 지연 후
  • 에 대한 ready 이벤트가 발생 한 후, 네트워크 모니터를 엽니까지
  • 추가 지연 후 웹 페이지 (예제 코드에서 google.com)로 이동
  • 준비 이벤트가 해당 탐색에 대해 발생하면 추가 지연을 기다렸다가 Firefox를 닫습니다.

현재 탐색 할 페이지가 하드 코딩됩니다. 필요한 경우 몇 가지 방법으로 구성 가능하도록 만들 수 있습니다.

다음은 Windows 10에서 사용했을 때의 모습입니다. jpm run은 Firefox 부가 기능 SDK에서 개발되었습니다. SDK 부가 기능을 테스트 할 수 있습니다. 당신은 아마 또한 "jpm run does NOT work with Firefox 48, or later"를 읽고 싶은 것 :

LICEcap Firefox open Network Monitor, navigate to google.com, close Firefox

package.json :

{ 
    "title": "Open Network Monitor, navigate, close", 
    "name": "netmonitor-navigate-close", 
    "version": "0.0.1", 
    "description": "Opens the network Monitor, navigates to a page, then closes Firefox", 
    "main": "index.js", 
    "author": "Makyen", 
    "engines": { 
     "firefox": ">=38.0a1", 
     "fennec": ">=38.0a1" 
    }, 
    "license": "MIT", 
    "keywords": [ 
     "jetpack" 
    ] 
} 

하는 index.js :

//Opens network monitor, navigates to a page, then closes Firefox. 

var pageToNavigateTo = "http://www.google.com"; 
//Whatever the home page is might have web access happen after 
// the ready event. Delay opening the Network monitor so those are skipped. 
var delayFirstTabReadyToOpenNetworkmonitor = 3000; //In ms. 3000 = 3 seconds 
var delayOpenNetworkmonitorToNavigate = 3000; //In ms. 3000 = 3 seconds 
var delayUrlReadyToClose = 5000; //In ms. 5000 = 5 seconds 


var tabs = require("sdk/tabs"); 
var utils = require('sdk/window/utils'); 
var activeWin = utils.getMostRecentBrowserWindow(); 

function getActiveWin() { 
    activeWin = utils.getMostRecentBrowserWindow(); 
} 
getActiveWin(); 

function openNetworkMonitor(){ 
    activeWin.document.getElementById('menuitem_netmonitor').doCommand(); 
} 

function receiveFirstTabReadyEvent(tab){ 
    getActiveWin(); 
    tabs.off('ready', receiveFirstTabReadyEvent); 
    activeWin.setTimeout(openNetworkMonitor,delayFirstTabReadyToOpenNetworkmonitor ,tab); 
    activeWin.setTimeout(navigateToTheUrl,(delayFirstTabReadyToOpenNetworkmonitor 
         + delayOpenNetworkmonitorToNavigate) ,tab); 
} 

function navigateToTheUrl(tab){ 
    tab.on('ready',theUrlIsReady); 
    tab.url=pageToNavigateTo; //navigate 
} 

function theUrlIsReady(tab){ 
    tab.off('ready',theUrlIsReady); 
    getActiveWin(); 
    //Some actions may take place in the page after the ready event. Thus, 
    // wait some extra time. 
    activeWin.setTimeout(exitFirefox,delayUrlReadyToClose); //Exit after delay 
} 

function exitFirefox(){ 
    getActiveWin(); 
    activeWin.document.getElementById('cmd_quitApplication').doCommand(); 
} 

tabs.on('ready', receiveFirstTabReadyEvent); 
+0

이것은 믿을 수 없다. 고맙습니다! – DARKOCEAN

관련 문제