Селен, как скопировать несколько слов, которые всегда разные? - PullRequest
1 голос
/ 17 июня 2019

Я пытаюсь автоматически скопировать имя из веб-браузера, но имя меняется, поэтому я не знаю, как его скопировать.

Я пытался дважды щелкнуть его или "Ctrl + C" егоно это не сработало.

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();

и после этого я хочу скопировать имя в мою Программу.Так что я бы сказал String text = driver ...

Ответы [ 3 ]

3 голосов
/ 17 июня 2019

Сначала вам нужно получить элемент, затем вызвать документально getText метод здесь :

driver.findElement(By.id("realname")).getText()

Надеюсь, это поможет.

1 голос
/ 17 июня 2019

Вы не должны использовать thread-sleep ... используйте WebDriverWait:

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("realname")));

Затем используйте getText():

String text = driver.findElement(By.id("realname")).getText()

Надеюсь, это поможет!

0 голосов
/ 17 июня 2019

Ссылка, которой вы поделились, имеет элемент с realname id до того, как она сгенерирует и покажет имя.
Поэтому ожидание видимости элемента с идентификатором realname не даст ожидаемого результата.

Вам нужно дождаться невидимости изображения, которое отображается при загрузке страницы, но не отображается при отображении имени.

Попробуйте это,

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#realname > a")));
String text = driver.findElement(By.id("realname")).getText();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...