Bei der Durchführung einer Elementsuche mit der find-Methode während des Rails-Integrationstests ist ein Syntaxfehler aufgetreten, den ich als Memorandum zusammengefasst habe.
Wenn Sie den Selektor im Integrationstest abrufen, tritt SyntaxError auf, wenn Sie wie folgt schreiben.
find("input[name="commit"]").click
Wenn Sie es wie folgt ändern
find('input[name="commit"]').click
SyntaxError wurde behoben. Warum ist der SyntaxError aufgetreten?
(WIP) Die Erweiterung von Ausdrücken ist mit doppelten Anführungszeichen möglich, die Erweiterung von Ausdrücken jedoch nicht mit einfachen Anführungszeichen.
> number = 1234
=> 1234
> "090#{number}5678"
=> "09012345678"
Einfaches Zitat
> number = 1234
=> 1234
> '090#{number}5678'
=> "090\#{number}5678"
#Ausdruckserweiterung ist nicht möglich
Es gibt einen deutlichen Unterschied zwischen doppelten und einfachen Anführungszeichen.
Die Backslash-Notation gilt für doppelte Anführungszeichen.
puts "Wird kaputt sein\n war fertig"
Wird kaputt sein
es war erledigt
In einfachen Anführungszeichen
puts 'Keine Zeilenumbrüche\war nicht n'
Wird kaputt sein\war nicht n
Wenn der Ruby-Interpreter (derjenige, der den Code analysiert) das anfängliche doppelte Anführungszeichen (einfaches Anführungszeichen) erkennt, erkennt er das nächste doppelte Anführungszeichen (einfaches Anführungszeichen) als geschlossen.
"(← Zeichenfolge starten)"(← Zeichenkette geschlossen) Zeichen (← Was ist das und es tritt ein Fehler auf.)
Wenn Sie ihm entkommen, wird er als Teil des Strings erkannt, anstatt geschlossen zu werden. Lassen Sie uns also entkommen.
Sie müssen es wie folgt entkommen:
Gutes Beispiel:
'\'hoge\''
"\"hoge\""
"'hoge'"
'"hoge"'
schlechtes Beispiel:
""hoge""
''hoge''
Übrigens, wenn Sie ein Muster wie dieses mit irb überprüfen
> str = '"hoge"'
=> "\"hoge\""
Es wird wie oben entkommen. Daher scheint es, dass der Fehler vermieden werden könnte.
Ich dachte, dass dies der Fall war, als ich normal darüber nachdachte, aber wenn Sie ähnliche Fragen haben, würde ich es begrüßen, wenn Sie es lesen könnten.
Recommended Posts