anchor.diff:              | head :: tail when isField head-> [head]
               | _ -> []
       try
  -        let label = browser.FindElement(By.XPath(sprintf ".//label[text() = '%s']" locator))
  +        let label : IWebElement = f(By.XPath(sprintf ".//label[text() = '%s']" locator))
           if (label = null) then
               []
           else
  
positive.code: 
  let private findByText text f =
      try
          let byValue = findByCss (sprintf "*[value='%s']" text) f |> List.ofSeq
          if byValue.Length > 0 then
              byValue
          else
              f(By.XPath(sprintf ".//*[text() = '%s']" text)) |> List.ofSeq
      with | _ -> []
      
  let rec private findElements (cssSelector : string) (searchContext : ISearchContext) =
  
negative.code: 
      try
          seq {
              yield (findByCss    cssSelector searchContext.FindElements)                        
              yield (findByValue  cssSelector searchContext.FindElements)
              yield (findByXpath  cssSelector searchContext.FindElements)
              yield (findByLabel  cssSelector searchContext.FindElement)            
              yield (findByText   cssSelector searchContext.FindElements)
              yield (findInIFrame())
          }
          |> Seq.filter(fun list -> not(list.IsEmpty))
  