Wenn ich habe einige HTML wie bekam:Capybara: Ist es möglich, einen Attributwert aus einer CSS-Zeichenfolge zu erhalten?
<div id='drawer'><ul><li><a href='www'>description</a>...
ich gesehen habe, dass ich den Wert von href in Capybara mit bekommen:
page.find('div#drawer a')['href']
Aber ist es eine Möglichkeit, diesen Wert abzurufen Wenn es vollständig als CSS-String beschrieben wird? dh versuchen, den Wert für 'div # Schublade a [href]
ich mit Ausdrücken wie dies versucht haben, zu bekommen:
page.find('div#drawer a[href]') => can't convert Capybara::Node::Element into String (TypeError)
page.find('div#drawer a[href]').value => can't convert nil into String (TypeError)
page.find('div#drawer a[href]').text => returns the text value of 'description'
ich die CSS-Expression in einer externen Konfigurations haben Datei, also wäre es irgendwie möglich, sie einfach direkt zu verwenden und den Wert des betreffenden Attributs abzurufen?
Danke ...
'a [href]' ist nur ein Selektor, der alle 'a' Elemente mit dem Attribut' href' abgleicht. Was meinst du mit "beschrieben als CSS-String"? – Blender
Warum brauchen Sie das? –
@Blender, ich meinte, dass 'div # drawer a [href]' eine Zeichenfolge ist, die versucht hat, das Attribut zu beschreiben, das mit der CSS-Syntax benötigt wurde. Aber vielleicht ist das nicht möglich? @Andrey, Ich experimentierte mit der Möglichkeit, die erforderlichen CSS-Beschreibungen aller Seitenelemente in externe JSON-Dateien zu stellen, damit ich diesen einzelnen Konfigurationspunkt in Zukunft bei jeder Änderung ändern konnte. Momentan werden die Elemente in jedem Schritt einzeln identifiziert. Wenn sich also etwas ändert, müssen Sie eine ganze Reihe verschiedener Dateien ändern ... – mickael