J'essaie de faire une recherche et de remplacer l'ensemble du projet
de:
drivers[i].findElement(By.id("elementID")).click();
à:
findAndClick(driver[i], "elementID", true)
Le problème est que l'élément ID peut être n'importe quoi, donc j'essaie de rechercher et de remplacer le caractère générique par ce qui est dans le caractère générique?
Vous devrez utiliser .+?
Au lieu de *
Ici car cela utilise des expressions régulières.
Dans les expressions régulières, un point .
Signifie "n'importe quel caractère", le plus +
Signifie "une ou plusieurs fois" et le point d'interrogation ?
Après cela signifie "essayez de faire correspondre ceci aussi peu de fois que possible "- ce qui est utile pour qu'il ne continue pas à correspondre au-delà de vos guillemets
Pour être clair cependant, vous devez faire une expression rationnelle valide, ce qui signifie que vous devrez échapper à vos parenthèses, points, etc.
Voici la solution complète
Rechercher: drivers\[i\]\.findElement\(By\.id\("(.+?)"\)\)\.click\(\);
remplacer par:findAndClick(driver[i], "$1", true)
Notez les parenthèses ajoutées non échappées autour du "caractère générique" (.+)
Cela crée un groupe de capture dans une expression régulière, ce qui se traduit par $1
Dans le remplacement puisqu'il s'agit du 1er groupe de capture.