1. This is the real problem you are facing, and to my knowledge there is no easy way to overcome this. At my work i don't have to compare the entire page, i only have to compare two maps (see it at
http://krak.dk/kort) created by n x n images of 256px x 256px. I've created a function grabMap() (not released) which uses getXpathCount() and getAttribute() to recreate the map from the 16, 25 or 36 images the map is composed of. I start my test using grapMap(), then i zoom and pan around in such a way that i end at the exact same place where i started. Then i use grapMap() again, and use compare() on the 2 created maps.
2. This is right, but the class i have released has nothing to do with Bromine. It's a simple PHP script. I was thinking you could take a look at it and translate the algorithm to java if you needed something in java.
Cheers