anchor.diff:      let elem = element cssSelector
       let readonly = elem.GetAttribute("readonly")
       if readonly = "true" then
  -        failwith (String.Format("element {0} is marked as read only, you can not clear read only elements", cssSelector))        
  +        raise (CanopyReadOnlyException(sprintf "element %s is marked as read only, you can not clear read only elements" cssSelector))
       elem.Clear()
   
   //status
   let selected (cssSelector : string) = 
       let elem = element cssSelector
       if elem.Selected = false then
  -        failwith (String.Format("element selected failed, {0} not selected.", cssSelector));    
  +        raise (CanopySelectionFailedExeception(sprintf "element selected failed, %s not selected." cssSelector))    
       
   let deselected (cssSelector : string) =     
           let elem = element cssSelector
           if elem.Selected then
  -            failwith (String.Format("element deselected failed, {0} selected.", cssSelector));    
  +            raise (CanopyDeselectionFailedException(sprintf "element deselected failed, %s selected." cssSelector))
   
   //keyboard
   let tab = Keys.Tab
  
positive.code: open reporters
  
  type CanopyException(message) = inherit Exception(message)
  
  let mutable (browser : IWebDriver) = null;
  let mutable (failureMessage : string) = null
  
negative.code:                                 ()           
                              else
                                  alert.Dismiss()
                                  raise (CanopyEqualityFailedException(sprintf "equality check failed.  expected: %s, got: %s" value text))
      | :? string as cssSelector -> 
          let bestvalue = ref ""
          try
  