anchor.diff:  
   let write (cssSelector : string) (text : string) = 
       logAction "write"
  -    let element = browser.FindElement(By.CssSelector(cssSelector))
  +    let element = find cssSelector elementTimeout
       element.SendKeys(text)
   
   let ( << ) (cssSelector : string) (text : string) = 
  
positive.code: let contains (value1 : string) (value2 : string) =
      logAction "contains"
      if (value2.Contains(value1) <> true) then
          failwith (System.String.Format("contains check failed.  {0} does not contain {1}", value2, value1));
      ()
  
  let describe (text : string) =
      System.Console.WriteLine(text);
      ()
negative.code:     | _ -> browser <- new OpenQA.Selenium.Firefox.FirefoxDriver() :> IWebDriver
      ()
  
  let private findByFunction cssSelector timeout f =
      let now = DateTime.Now
      let finish = now.AddSeconds timeout
  
      let rec findAndWait from til =
          try
              f(By.CssSelector(cssSelector))
          with
              | :? Exception when from < til -> findAndWait DateTime.Now til
              | :? Exception -> failwith (String.Format("cant find element {0}", cssSelector))
  
      findAndWait now finish
  
  let private find cssSelector timeout =
      findByFunction cssSelector timeout browser.FindElement
  
  let private findMany cssSelector timeout =
      findByFunction cssSelector timeout browser.FindElements
  
  let currentUrl _ =
      browser.Url
  
  