anchor.diff:      with
           | :? WebDriverTimeoutException -> 
                   puts "Condition not met in given amount of time. If you want to increase the time, put compareTimeout <- 10.0 anywhere before a test to increase the timeout"
  -                failwith (String.Format("waitFor condition failed to become true in {0} seconds", compareTimeout))
  +                raise (CanopyWaitForException(sprintf "waitFor condition failed to become true in %.1f seconds" compareTimeout))
   
   //find related
   let private findByCss cssSelector f =
  
positive.code:             else
                  let readonly = e.GetAttribute("readonly")
                  if readonly = "true" then
                      raise (CanopyException((String.Format("element {0} is marked as read only, you can not write to read only elements", cssSelector))))
                  try e.Clear() with ex -> ex |> ignore
                  e.SendKeys(text)
  
  
negative.code:                                             else
                                                  readvalue = value))
          with
              | :? WebDriverTimeoutException -> raise (CanopyEqualityFailedException(sprintf "equality check failed.  expected: %s, got: %s" value !bestvalue))
  
      | _ -> raise (CanopyEqualityFailedException(sprintf "Can't check equality on %s because it is not a string or alert" (item.ToString())))
  
  let ( != ) cssSelector value =
      try
          wait compareTimeout (fun _ -> (read cssSelector) <> value)
      with
          | :? WebDriverTimeoutException -> raise (CanopyNotEqualsFailedException(sprintf "not equals check failed.  expected NOT: %s, got: %s" value (read cssSelector)))
          
  let ( *= ) (cssSelector : string) value =
      try        
  