Als ich kürzlich versuchte, in der Umgebung von Selenium + Junit eine Zeichenfolge mit '(einfaches Anführungszeichen) zu finden, die von Autopilot und Autopilotentest auf der Webseite behoben wurde, machte ich mir eine Notiz.
Wenn Sie nach einer Zeichenfolge suchen möchten, die "(einfaches Anführungszeichen) enthält, wenn Sie ein Element mit Selen usw. identifizieren, müssen Sie entkommen" (einfaches Anführungszeichen), aber leider die Spezifikation von Xpath 1.0 Es gab keinen Ausweg “(einfache Anführungszeichen). Um beispielsweise in XPath 2.0 '(einfaches Anführungszeichen) in einer in' (einfaches Anführungszeichen) eingeschlossenen Zeichenfolge zu maskieren, schreiben Sie zwei '(einfaches Anführungszeichen) in eine Reihe und maskieren Sie wie' '. Es scheint jedoch, dass XPath 2.0 selbst mit der neuesten Version von Firefox und Chrome nicht verwendet werden kann.
Also, was ist denn passiert? Es wurde wie folgt.
Wenn Sie beispielsweise nach einem Element suchen, das die folgende Zeichenfolge von XPath enthält,
python
<a aria-label="App Mai'n-chan"Love" <1>" href="#MarketListingPlace:p=tmp.03831173739257532153.1317485953465" data-column="TITLE"><img src="gwt/placeholder_icon_24.png " role="presentation"><div> <div>May'n-chan"Love" <1></div> <div></div> </div> </a>
Gehen Sie wie folgt vor (wenn Sie mit der Konsole von Firefox quantam suchen)
$x("//a[@aria-label=concat('App Mai', \"'\", 'n-chan\"Love\" <1>')]")
Mit Selenium + Junit sieht es wie folgt aus
Suche nach By.xpath von Selen + Junit
python
searchString = "App Mai'n-chan\"Love\" <1>";
xPathStringLiteral = toXPathStringLiteral(searchString);
searchXpath = "//a[@aria-label=" + xPathStringLiteral + "]";
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(searchXpath))
toXPathStringLiteral
python
private String toXPathStringLiteral(String string) {
if ( string.indexOf("'") == -1 ) {
return "'" + string + "'";
}
if ( string.indexOf('"') == -1 ) {
return '"' + string + '"';
}
return ("concat('" + string.replace("'", "', \"'\", '") + "')");
}
Es war furchtbar mühsam ...
Recommended Posts