3番目みたいな順序による指定は、CSS Selector よりも、XPath。
CSS Selector では基本、クラスで指定すべき!

# Ruby, Nokogiri で、5ch をスクレイピングした例
doc = Nokogiri::HTML(driver.page_source)

# a を含む、post_node だけを抜き出す。descendant は子孫、ancestor は祖先
# div.thread > div.post > div.message > span > a
post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"

div.message の子孫で、<a> を含む要素を見つけて、
そのdiv.messageの祖先の、div.post 要素を取得する