Ich versuche, wenn zu überprüfen, ein div
ein Kind mit bestimmten Klasse in Capybara hat, das folgende Stück Code: expect(find("#admin-row-1 .glyphicon-ban-circle")).to_not be_empty
Capybara: Überprüfen Sie Kinder eines div mit Klasse
Nach debug, ich die folgende Ausgabe
(byebug) find("#admin-row-1 .glyphicon-ban-circle")
#<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]">
Aber dennoch, den Fehler folgende Erwartung bekommen
Failure/Error: expect(find("#admin-row-1 .glyphicon-ban-circle")).to_not be_empty
expected #<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]"> to respond to `empty?`
Es zu nutzen funktioniert genauso wie 'expect (page) .to have_selector ('# admin-row-1 .glyphicon-ban-circle')'? Was ist der Unterschied zwischen 'have_css' und' have_selector'? – vipin8169
Der erste Parameter von Have_selectors ist der Typ des Capybara-Selektors (der Selektor in have_selector bezieht sich auf den Capybara-Selektor, nicht notwendigerweise auf CSS) und, wenn nicht angegeben, standardmäßig auf Capybara.default_selector, standardmäßig: css. have_css (...) ruft have_selector (: css, ...) auf, also ist es dasselbe, aber es macht deutlich, dass du css verwendest im Gegensatz zu: xpath,: field,: select, etc. –