2015-10-15 2 views
0

Мне нужно сгенерировать число через веб-сайт и сохранить его в var. Поэтому я буду использовать этот var позже в своем тесте, чтобы заполнить регистрационную форму.Java + Selenium = Сохранять текст в var

Но я не могу получить значение, генерируемое этим с помощью 'gettext' и 'getattribute'. Я попытался смоделировать 'ctrl + c', но я не знаю, как сохранить значение ctrl + v в var.

Помогло ли вам?

Это сайт (для генерации поддельного номера бразильского идентификатора) вам просто нужно сгенерировать номер, нажав «Gerar CPF». Но сгенерированный номер не отображается в firepath или в источнике страницы html.

http://www.geradordecpf.org/

Спасибо.

+0

Если вы используете java, тогда попробуйте - if (driver instanceof JavascriptExecutor) { ((JavascriptExecutor)) .executeScript ("document.getElementById ('numero'). Value"); } – SIslam

+0

И как мне связать var с ним? Мне нужно var (string), чтобы получить это значение. –

+0

Попробуйте проще: драйвер WebDriver = новый FirefoxDriver(); Драйвер JavascriptExecutor js = (JavascriptExecutor); driver.get ("http: // localhost: 8080/HTML5TestApp/prod.html"); Object val = js.executeScript ("document.getElementById ('numero'). Value;"); System.out.println (val); – SIslam

ответ

-2

Причина, по которой вы не можете прочитать это число, потому что оно создано через JS. На самом деле это не часть HTML-элемента.

Почему вы должны генерировать Number через сайт? Если вы создадите номер через Java, он сделает это.

PS: Если это потому, что номер генерируется определенным образом, просто скопируйте его отсюда: http://www.geradordecpf.org/assets/js/main.js

Все это делает генерировать номера. Любой язык/сценарий может это сделать :)

+0

Мне просто нужно скопировать и вставить новый класс java? Извините, я действительно новичок в Java. –

+0

Если вы новичок в Java, вы должны читать учебники и документы Java. – JeffC

1

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

Вы можете получить значение текстового поля, используя метод значения getAttribute.

WebElement text_field_element = driver.findElement(By.Id("numero")); 
String value = text_field_element.getAttribute("value") 

Мы столкнулись с таким же вопросом до и после метода, который нас спас. Надеюсь это поможет.