Sie können den xpath-Selektor verwenden, wenn Sie
möchten %Vor% Es stellt sich heraus, dass die Dokumente für beide Aufrufe irreführend sind, da beide die aufgelisteten Attribute nicht betrachten. Es ist auch sehr verwirrend, was genau ein "Knopf" bedeutet, da ein paar Leute hier meinen, es bedeute buchstäblich nur ein HTML name
Element, aber das ist nicht der Fall.
Wenn Sie die Quelle für die Dokumentation von, sagen wir, "commit"
:
... Sie werden sehen, dass dies (wie ich an anderer Stelle erwähnt habe) nur zu Capybara::ElementNotFound: Unable to find button "commit"
mit einer Art Sign in
aufruft, was wiederum zu Capybaras click_button
engine geht, die wiederum endet einfach den internen Standard-Auswahlmechanismus verwenden, um Dinge zu finden. Es ist ziemlich elegant; Auf die gleiche Weise, wie ein externer Client seine eigenen benutzerdefinierten Selektoren hinzufügen kann, um das Finden von Dingen bequemer zu machen:
... also fügt Capybara intern eigene Selektoren hinzu, einschließlich input
:
Es wird nicht durch spezielle Zauber gemacht, nur einige vordefinierte benutzerdefinierte Selektoren. Also, wenn Sie sich gefragt haben, welche benutzerdefinierten Selektoren von Anfang an in Capybara verfügbar sind, ist das die zu lesende Datei (sie ist wahrscheinlich auch in den Dokumenten vergraben, aber ich habe die Liste selbst noch nicht gefunden).
Hier sehen wir, dass der Schaltflächencode tatsächlich value
aufruft, was ein anderer Codeabschnitt in einem anderen Repository ist, mit dieser Dokumentation:
... was zum Zeitpunkt des Schreibens etwas veraltet in Bezug auf den Code ist, da der Code ziemlich viel mehr Zeug anzeigt, einschließlich button
types von find
und find_button
(d. h find_button
anstatt find
, obwohl Letzteres natürlich auch enthalten ist).
Wir können auch in diesem Code sehen, dass die Finder-Methode wirklich nur nach% findet. co_de%, name
und I18n.t()
- dh nicht von "text" und nicht nach dem Namen.
Unter der Annahme, dass XPath sich wie beabsichtigt verhält, obwohl es aus der Dokumentation nicht klar ist, können wir sehen, dass Capybara sich nicht korrekt dokumentiert, aber wahrscheinlich die Verbindung zu XPath-APIs herstellen sollte, um die aktuelle Duplizierung zu vermeiden Informationen und die Probleme, die dies sowohl für Betreuer als auch für API-Clients verursachen kann.
In der Zwischenzeit habe ich dieses Problem eingereicht:
Wenn irgendjemand will, ist es möglich, (ziemlich leicht) nach Namen zu suchen. Um dies zu tun:
Nun können Sie in Ihren Tests folgenden Selektor verwenden:
%Vor%Es wird jedes Element finden, dessen %code% -Attribut den gesuchten Wert enthält.
Dies wird Elemente finden (Element kann von jedem Typ sein):
%Vor%Sie können diese Auswahl verwenden, um eine Schaltfläche auf einer Seite mit RSpec und Capybara zu finden:
%Vor%Sie können auch CSS-Selektoren verwenden, die Standard-Capybara-Locatoren sind. Leute sagen, dass sie schneller sind.
%Vor%Capybara schaut nicht auf %code% Attribut in seinen Findern: (
Es stellt sich heraus, dass die Dokumente für beide Aufrufe irreführend sind, da beide die aufgelisteten Attribute nicht betrachten. Es ist auch sehr verwirrend, was genau ein "Knopf" bedeutet, da ein paar Leute hier meinen, es bedeute buchstäblich nur ein HTML button
Element, aber das ist nicht der Fall.
Wenn Sie die Quelle für die Dokumentation von, sagen wir, click_button
:
... Sie werden sehen, dass dies (wie ich an anderer Stelle erwähnt habe) nur zu find
mit einer Art :button
aufruft, was wiederum zu Capybaras Query
engine geht, die wiederum endet einfach den internen Standard-Auswahlmechanismus verwenden, um Dinge zu finden. Es ist ziemlich elegant; Auf die gleiche Weise, wie ein externer Client seine eigenen benutzerdefinierten Selektoren hinzufügen kann, um das Finden von Dingen bequemer zu machen:
... also fügt Capybara intern eigene Selektoren hinzu, einschließlich :button
:
Es wird nicht durch spezielle Zauber gemacht, nur einige vordefinierte benutzerdefinierte Selektoren. Also, wenn Sie sich gefragt haben, welche benutzerdefinierten Selektoren von Anfang an in Capybara verfügbar sind, ist das die zu lesende Datei (sie ist wahrscheinlich auch in den Dokumenten vergraben, aber ich habe die Liste selbst noch nicht gefunden).
Hier sehen wir, dass der Schaltflächencode tatsächlich XPath::HTML.button
aufruft, was ein anderer Codeabschnitt in einem anderen Repository ist, mit dieser Dokumentation:
... was zum Zeitpunkt des Schreibens etwas veraltet in Bezug auf den Code ist, da der Code ziemlich viel mehr Zeug anzeigt, einschließlich input
types von reset
und button
(d. h <input type="button"...>
anstatt <button...>...</button>
, obwohl Letzteres natürlich auch enthalten ist).
Wir können auch in diesem Code sehen, dass die Finder-Methode wirklich nur nach% findet. co_de%, id
und value
- dh nicht von "text" und nicht nach dem Namen.
Unter der Annahme, dass XPath sich wie beabsichtigt verhält, obwohl es aus der Dokumentation nicht klar ist, können wir sehen, dass Capybara sich nicht korrekt dokumentiert, aber wahrscheinlich die Verbindung zu XPath-APIs herstellen sollte, um die aktuelle Duplizierung zu vermeiden Informationen und die Probleme, die dies sowohl für Betreuer als auch für API-Clients verursachen kann.
In der Zwischenzeit habe ich dieses Problem eingereicht:
Sie können den xpath-Selektor verwenden, wenn Sie
möchten %Vor%Wenn irgendjemand will, ist es möglich, (ziemlich leicht) nach Namen zu suchen. Um dies zu tun:
test/test_helper.rb
(für Minitest) Nun können Sie in Ihren Tests folgenden Selektor verwenden:
%Vor% Es wird jedes Element finden, dessen name
-Attribut den gesuchten Wert enthält.
Dies wird Elemente finden (Element kann von jedem Typ sein):
%Vor%Sie können diese Auswahl verwenden, um eine Schaltfläche auf einer Seite mit RSpec und Capybara zu finden:
%Vor%Tags und Links ruby html ruby-on-rails capybara integration-testing
Sie müssen %code% zu Ihren Frameworks hinzufügen.
In diesem Tutorial ist Schritt 6:
Schritt 6
Fügen Sie Ihrem Projekt die folgenden Ordner hinzu und fügen Sie sie Ihrem Xcode hinzu Projekt:
Authentifizierungskategorien Core-Dienstprogramme Zusätzlich hinzufügen libresolv.dylib zu Ihrem Xcode-Projekt. (In Xcode 4, gehe zu Ziel - & gt; Phasen erstellen - & gt; Link Binär mit Bibliotheken - & gt; + - & gt; Wählen libresolv.dylib aus der Dropdown-Liste)
Stellen Sie sicher, dass Ihr Projekt kompiliert wird.
Und jetzt können Sie XMPPFramework in Ihrem Projekt verwenden. Das Intro to XMPPFramework Seite erklärt, wie dies zu tun ist.
%code% und %code% Dateien der xmpp , ich versuche, an einer Chat-Anwendung zu arbeiten.
Aber wenn ich das Projekt erstelle, bekomme ich den folgenden Fehler, ich versuche das Problem von den letzten 24 Stunden zu lösen, aber war nicht erfolgreich, um die Lösung zu bekommen, ich googelte sogar, aber bekam die Lösung nicht.
Das Folgende ist der Fehler, den ich bekomme,