incrediBILL - 12:38 am on Nov 1, 2013 (gmt 0)
3. If there is no movement on couple of pages then you know what you have to do!
Since these tools are built to do automated testing of websites they can replicate all mouse and keyboard events so testing for those won't help in the long run as they can easily write code to fake a mouse move.
Here's the PhantomJS mouse and keyboard event code:
sendEvent(mouseEventType[, mouseX, mouseY, button='left'])
sendEvent(keyboardEventType, keyOrKeys, [null, null, modifier])
If all you do is check for mouse moves or key clicks to detect bots, it's trivial to script random mouse moves or write a function to make a mouse move to the button or link you want to click or provide the keyboard events to activate the link.
I've noticed escalating webkit user agents scraping for the last few years but didn't know exactly what was going on and now I know.
Knowing is half the battle :)