Ich habe diese einfache HTML:Wie kann man Innentext mit Capybara und Poltergeist abrufen?
<div> Test <span> someting </span></div>
Wie kann ich nur die innertext
des div abrufen?
text
Mit holt den gesamten Text aus dem div:
[1] pry(#<SandBox>)> first(:xpath, '//div').text
=> "Test someting"
text()
in meine XPath Abfrage-Ergebnisse in der folgenden Fehler Verwendung:
[2] pry(#<SandBox>)> first(:xpath, '//div/text()')
Capybara::Poltergeist::BrowserError: There was an error inside the PhantomJS portion of Poltergeist. This is probably a bug, so please report it.
TypeError: 'null' is not an object (evaluating 'window.getComputedStyle(element).display')
jedoch die gleiche XPath mit Nokogiri funktioniert:
[3] pry(#<SandBox>)> Nokogiri::HTML(page.html).xpath('//div/text()').text
=> " Test "
Gibt es eine Möglichkeit, es zu verwenden nur Capybara, ohne auf Nokogiri zurückzugreifen?
wie die Fehlermeldung meldet, ist dies sehr wahrscheinlich ein Fehler. Sie sollten dies den Entwicklern melden. Es gibt wirklich keinen Weg um 'text()' zu benutzen und wenn das nicht funktioniert würde ich es als einen großen Fehler betrachten. Also wartest du entweder auf den Fix oder du verwendest eine andere Lösung wie Nokogiri – dirkk
Ich habe auch gesucht und es scheint, dass es zu diesem Zeitpunkt keine Möglichkeit gibt, das innere HTML zu bekommen. Ich denke, wir müssen auf ein Update warten oder eine Pull-Anfrage machen. Ich denke, mindestens ein anderer Capybara-Treiber unterstützt die innerHTML-Methode. –