Identification of objects,Ajax components-We have to use explicit wait for that and sometimes seperate code for each browser ..like we have to use click in some cases after entering the data for firefox and enter data plus Keys.ENTER for some browsers like chrome or vice versa where submit button does not work sometimes.
Xpath is varying for some webpages if it is based on id .Then we have to find xpath based on class or some other selector.
Sometimes we have to use absolute xpath as partial is not working.
Sometimes client requirements change.For this keep commonly used data in a properties file so that we can change it later easily.
Need a fresh browser to open.It cant work with already open browsers.So if test is stopped in between it has to start all over again
It needs drivers for every browser like Mozilla,Chrome etc and Safari driver is still unstable and IE driver still gives issues.