2013-04-29 3 views
1

프록시를 활성화하여 웹 사이트를 제한하는 소프트웨어를 테스트하고 있습니다. 프록시가 작동을 멈추는 버그가있는 것처럼 보입니다. 웹 서핑을 한 두 시간이나 한 두 번이나 수백, 수천 개의 링크를 클릭해야만 버그가있는 것 같습니다.웹 페이지의 링크를 임의로 자동 클릭하는 방법이 있습니까?

이렇게 할 수있는 기존 솔루션이 있습니까? 만약 내가 그런 식으로 그것을 해결할 수있는 솔루션을 프로그래밍에 관심이 있습니다.

나는 greasemonkey 플러그인에 대해 들어 보았지만 파이어 폭스 플러그인은 잘 모르겠다. 자바 스크립트가 임의로 페이지의 링크를 수집 한 다음 무작위로 그 중 하나를 열 수있는 방법이 있습니까?

+2

물론입니다. GM 스크립트에서 [~~ (Math.random() * links.length)] .click();}, 1500)'을 링크하는 setInterval (function() {var links = document.getElementsByTagName 그리고 그것은 작동해야합니다 ... – Bergi

답변

1

프록시와 같은 사운드의 세션 시간 제한은 약 1 시간 (절대) 또는 약 1 시간의 "활동 없음"일 수 있습니다.

// ==UserScript== 
// @name  _YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// ==/UserScript== 

var timeDelaySeconds = 2; 

setInterval (clickRandomLink, timeDelaySeconds * 1000); 

function clickRandomLink() { 
    var links = document.querySelectorAll ("a"); 
    /*--- Or fine-tune the links to certain areas or types. EG: 
     var links = document.querySelectorAll ("#content a"); 
     var links = document.querySelectorAll ("a.comments"); 
     etc. 
    */ 
    if (links.length) { 
     var linkToClick = links[getRandomInt (0, links.length - 1) ]; 
     var clickEvent = document.createEvent ('MouseEvents'); 

     clickEvent.initEvent ('click', true, true); 
     linkToClick.dispatchEvent (clickEvent); 
    } 
} 

function getRandomInt (min, max) { 
    return Math.floor (Math.random() * (max - min + 1)) + min; 
} 

그것은 AJAX 기능에 대한 링크를 허용하기 위해 시간 지연을 사용하여 따로 보관 해 좋은 테스트 방법의 여부를 떠나

, 여기에 임의의 링크를 클릭 완전한 그리스 몽키 스크립트입니다. querySelectorAll()을 사용하여 어떤 링크가 사용되는지 미세 조정할 수 있으며 대부분의 종류의 링크를 트리거하는 가장 강력한 방법이므로 실제 클릭 이벤트를 보냅니다.

관련 문제