diff --git a/Yesod/Test/CssQuery.hs b/Yesod/Test/CssQuery.hs
--- a/Yesod/Test/CssQuery.hs
+++ b/Yesod/Test/CssQuery.hs
@@ -60,10 +60,10 @@
 directChildren = string "> " >> DirectChildren <$> parseSelectors
 
 deepChildren :: Parser SelectorGroup
-deepChildren = DeepChildren <$> parseSelectors
+deepChildren = pOptionalTrailingSpace $ DeepChildren <$> parseSelectors
 
 parseSelectors :: Parser [Selector]
-parseSelectors = pOptionalTrailingSpace . many1 $
+parseSelectors = many1 $
     parseId <|> parseClass <|> parseTag <|> parseAttr
 
 parseId :: Parser Selector
@@ -87,7 +87,7 @@
 -- | pIdent : Parse an identifier (not yet supporting escapes and unicode as
 -- part of the identifier). Basically the regex: [-]?[_a-zA-Z][_a-zA-Z0-9]*
 pIdent :: Parser Text
-pIdent = pOptionalTrailingSpace $ do
+pIdent = do
     leadingMinus <- string "-" <|> pure ""
     nmstart <- T.singleton <$> satisfy (\c -> isAlpha c || c == '_')
     nmchar <- takeWhile (\c -> isAlphaNum c || c == '_')
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -11,7 +11,7 @@
 import Yesod.Test.CssQuery
 import Yesod.Test.TransversingCSS
 import Text.XML
-import Data.Text (Text)
+import Data.Text (Text, pack)
 import Data.Monoid ((<>))
 import Control.Applicative
 import Network.Wai (pathInfo)
@@ -40,6 +40,14 @@
             let html = "<html><head><title>foo</title></head><body><br><p>Hello World</p></body></html>"
                 query = "body > p"
              in findBySelector_ html query @?= ["<p>Hello World</p>"]
+        let query = "form.foo input[name=_token][type=hidden][value]"
+            html = "<input name='_token' type='hidden' value='foo'><form class='foo'><input name='_token' type='hidden' value='bar'></form>"
+            expected = "<input name=\"_token\" type=\"hidden\" value=\"bar\" />"
+         in it query $ findBySelector_ html (pack query) @?= [expected]
+        it "descendents" $
+            let html = "<html><p><b><i>hello</i></b></p></html>"
+                query = "p i"
+             in findBySelector_ html query @?= ["<i>hello</i>"]
     describe "HTML parsing" $ do
         it "XHTML" $
             let html = "<html><head><title>foo</title></head><body><p>Hello World</p></body></html>"
diff --git a/yesod-test.cabal b/yesod-test.cabal
--- a/yesod-test.cabal
+++ b/yesod-test.cabal
@@ -1,5 +1,5 @@
 name:               yesod-test
-version:            1.4.0
+version:            1.4.0.1
 license:            MIT
 license-file:       LICENSE
 author:             Nubis <nubis@woobiz.com.ar>
