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> {