J'essaye de copier automatiquement un nom hors du navigateur Web, mais le nom change donc je ne sais pas comment le copier.
J'ai essayé de le double-cliquer ou de le "ctrl + c" mais ce n'est pas le cas ne fonctionne pas.
WebDriver driver = new ChromeDriver();
driver.get("https://realnamecreator.alexjonas.de/?l=de#");
driver.findElement(By.linkText("[+] Filter-Optionen")).click();
driver.findElement(By.id("gender")).click();
new Select(driver.findElement(By.id("gender"))).selectByVisibleText("w");
driver.findElement(By.id("gender")).click();
driver.findElement(By.id("button")).click();
et après cela, je veux copier le nom dans mon programme. Alors je dirais String text = driver ...
3 Réponses :
Vous devez d'abord récupérer l'élément, puis appeler la méthode getText documentée ici :
driver.findElement(By.id("realname")).getText()
J'espère que cela vous aidera.
Merci Omg, j'ai déjà essayé cela, mais après votre commentaire, j'ai eu l'idée de laisser le fil dormir pour qu'il puisse se charger. Mon problème était que j'avais copié quelque chose qui était là quelques millisecondes après. Merci! :)
@MuhammedDemir il n'est pas recommandé d'utiliser le thread sleep ... utilisez WebDriverWait
Vous ne devez pas utiliser thread-sleep ... utilisez WebDriverWait:
String text = driver.findElement(By.id("realname")).getText()
Ensuite, utilisez getText():
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("realname")));
Le lien que vous avez partagé contient l'élément avec l'ID realname avant de générer et d'afficher le nom.
Donc, attendre la visibilité de l'élément avec l'id realname ne vous donnerait pas le résultat attendu.
Vous devez attendre l'invisibilité de l'image qui apparaît lors du chargement de la page mais qui ne s'affiche pas lorsque le nom est affiché.
Essayez ceci,
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#realname > a")));
String text = driver.findElement(By.id("realname")).getText();
pouvez-vous cisailler le HTML de l'élément qui contient le nom?
Je ne suis pas sûr mais l'id = "realname" et son h1