t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как достать текст из поля, когда значение поля не хранится в html елементе ?

java
selenium
testng
webdriver
Теги: #<Tag:0x00007fb2f825bf18> #<Tag:0x00007fb2f825bdd8> #<Tag:0x00007fb2f825bc70> #<Tag:0x00007fb2f825bae0>

(Nikolas Ryzhov) #1

Я попытался получить текст из поля на сайте с временной почтой: https*://10m)i8nema8i8l.com/

На java в Intellij IDEA открываю через webdriver сайт, нажимаю кнопку “delete” для формирования нового адреса. Далее необходимо получить имя почты из элемента:

xpath("//*[@id=“mail”]")

, а его там нет, он появлется при нажатии.

Подскажите ,пожалуйста, как его можно вытащить?

Код

driver = new ChromeDriver();
driver.get(siteName);
driver.findElement(By.xpath("//*[@id=“click-to-delete”]")).click();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

WebElement mailElement = driver.findElement(By.xpath("//*[@id=“mail”]"));


(Vladislav Abramov) #2

mailElement.getAttribute(“innerText”)

вместо innertext пробуйте ещё value, innerhtml, на крайняк можно outerhtml и оттуда уже текст вырезать


(Vladislav Abramov) #3

и ещё раз логику проработайте

если текст появляется при нажатии на элемент - нажимайте и потом оттуда текст дергайте


(Nikolas Ryzhov) #4

Не, так не получилось:

WebElement mailElement = driver.findElement(By.xpath("//*[@id=“mail”]"));
mailElement.click();
System.out.println(mailElement.getAttribute(“innerText”));
System.out.println(mailElement.getText());

Возвращает пустые строки, но теперь получилось на него нажать и нужный текст выделен.

Есть возможность взять выделенный текст с помощью WebDriver?


(Sergei) #5

Let me help you to google :slight_smile:


(Nikolas Ryzhov) #6

Спасибо!!!

JavascriptExecutor js = (JavascriptExecutor) driver; String title = (String)js.executeScript("return window.getSelection().toString()"); System.out.println(title);