Some typical reasons why scripts do not play accurately after recording are listed below. In such instances you will need
               to customize your test script. 
               
            
 
            
             
               
               - Stateful scripts: Recorded scripts only work when the application under test has the same state during replay that it had during script recording.
                  For example, a script that includes user login can only be run correctly when the application is in a logged-out state. You
                  can work around this issue by either setting the application state by manually adding logic to your script, or you can ensure
                  that your recorded scripts do not change application state in the first place (for example, you could include user log out
                  during the recording of your script). 
                  
               
- Temporarily generated DOM attributes: Some AJAX frameworks generate attributes that change each time a page is loaded (for example, 
                  x-auto values in 
                  ext). If a locator relies on such attributes, script replay will fail. You will need to add the attributes to the ignored attributes
                  list to prevent them from being recorded in the future. 
                  
               
- Missing mouse movements: When you are testing websites where items only appear if you are hovering with your mouse over certain elements (for example
                  a button or a menu item), you will get an error during the replay of the script. 
                  Silk Performer cannot detect the item because the hovering event is not recorded. Menus that are built with JavaScript are a good example
                  for such a case. However, with 
                  Silk Performer you can fix this problem during the replay of a script. In the 
                  Browser Application, you can click the 
                  Troubleshoot button when the error occurs, select 
                  Insert Mouse Move from the list, move the mouse over the UI element, press 
                  <Pause/Break> on your keyboard, click 
                  Insert, and click 
                  Rerun Script. Now the script will run without an error.
                  
               
- Calls that run into the synchronization timeout: Built-in AJAX synchronization waits until the browser is in an idle state before API calls are returned. This is a key factor
                  in reliable testing of AJAX-based applications. However, in some situations there is no idle state (for example, if a page
                  uses polling or keeps connections open for server-push events). In such situations the synchronization waits until it runs
                  into a timeout. You can work around this issue by temporarily setting the synchronization mode back to HTML.