As you are working on your WEB application, you have learnt to use the GWT, then you wanted nicer UI controls (if you are a Java developer at core) from another framework, 'cause you have not time and interest to tweak (play) with .CSS styles. So, eventually you may end up, like many of us, with the GXT library from Sencha (fromer ExtJS).
And as long as you kept the development within the pure GWT, you managed the IDs and names of your controls. Doing this (all manually hard work) it pays back, because you can easily use the Selenium for testing your application.
"Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language. Selenium provides a test domain specific language (DSL) to write tests in a number of popular programming languages, including C#, Java, Ruby, Groovy, Python, PHP, and Perl. Test playback is possible in most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms." from Wikipedia, the free encyclopedia.
Now if you use the GXT (official name is called Ext GWT, not to be confused with the old dead framework GWT-Ext) you'll see that all controls have an automatic generated ID (i.e. "x-auto-234") in the class "Component", which is the base of all GXT UI widgets, using the helper function XDOM.getUniqueId().
Now the problem is simple, because the UI widgets have these IDs auto-increment generated, depending of the workflow of your application (which dialogs, windows you open first) you'll have for sure different IDs for the same controls. You can say, "no problem, we can always overide the IDs, or set the names of the controls" (which is true), but what about the built-in dialogs like MessageBox, which are very "enclosed", and you cannot override or set anything from its implementation?
I found not solution yet, but I'm still digging, so if you have any ideas or solutions, please don't be shy to share them with everybody here, in a small comment !
Cheers and happy testing!