diff --git a/src/selector.rs b/src/selector.rs
index 2aac23c..abd3075 100644
--- a/src/selector.rs
+++ b/src/selector.rs
@@ -15,7 +15,13 @@ pub trait SelectorBase {
     }
 
     fn css_once<S: AsRef<str>>(&self, css_selector: S) -> Option<Selector> {
-        self.css(css_selector.as_ref()).pop()
+        let css_selector = css_selector.as_ref();
+        let mut nodes = self.css(css_selector);
+        if nodes.is_empty() {
+            None
+        } else {
+            Some(nodes.swap_remove(0))
+        }
     }
 
     fn xpath<S: AsRef<str>>(&self, xpath: S) -> Vec<Selector> {