Skip to content

Instantly share code, notes, and snippets.

@firedfox
Last active August 29, 2015 14:22
Show Gist options
  • Save firedfox/645303cd182e60c82a16 to your computer and use it in GitHub Desktop.
Save firedfox/645303cd182e60c82a16 to your computer and use it in GitHub Desktop.
/**
* @file trigger click on an element and capture the url
* @author wangyang02
*
* @example
* phantomjs click.js https://www.baidu.com/ 'a[name=tj_trnews]'
* phantomjs click.js https://www.baidu.com/ '#su'
*/
/* eslint-disable */
var TIMEOUT = 60 * 1000;
var webPage = require('webpage');
var system = require('system');
var page = webPage.create();
page.settings.loadImages = false;
var args = system.args;
if (args.length < 3) {
console.log('usage: phantomjs click.js url elementSelector');
phantom.exit(1);
}
var url = args[1];
var elementSelector = args[2];
var isResourceLogEnabled = false;
var triggerClick = function(status) {
isResourceLogEnabled = true;
var ret = page.evaluate(function(elementSelector) {
var element = document.querySelector(elementSelector);
if (!element) {
console.error('element not found');
return 3;
}
if (typeof element.click == 'function') {
element.click();
return 0;
}
}, elementSelector);
if (ret != 0) {
phantom.exit(ret);
}
};
page.onResourceRequested = function(e) {
if (isResourceLogEnabled) {
console.log(e.url);
phantom.exit(0);
}
};
page.open(url, triggerClick);
setTimeout(function() {
console.error('timeout');
phantom.exit(2);
}, TIMEOUT);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment