Перейти к содержимому

Фотография

Передача значения переменой a функцию


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Antony4563

Antony4563

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Трофимов Антон

Отправлено 13 февраля 2014 - 12:45

Есть такая задача.

 

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

Используется следуящая функция:

 

driver.findElement(By.id("username")).sendKeys("admin");

 

Нужно в метод "sendKeys" передать не текст а значение переменой.

Как это можно реализовать? Может есть какой то другой метод?

Просто объвить переменную и подставить в метод не получается, eclipse выдает ошибку

 

То есть к примеру как-то так:

void log_out2(int num) throws Exception
{
           //////////*************///////////////////////

            driver.findElement(By.id("username")).clear();
            driver.findElement(By.id("username")).sendKeys(num);
            //////////**************///////////////////

 

}


  • 0

#2 biomaks

biomaks

    Постоянный участник

  • Members
  • PipPipPip
  • 171 сообщений
  • Город:Москва


Отправлено 13 февраля 2014 - 12:50

что за ошибку выдает eclipse?


  • 0

#3 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 13 февраля 2014 - 12:51

Какую ошибку выдаёт Eclipse?

На самом деле именно так, как Вы описали, и происходит передача значения переменной.

 

Пример из моего кода:

partnerField.selectByValue(testPartner ? "17" : "20");
contractNoField.sendKeys(contractNo);

  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#4 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 13 февраля 2014 - 13:03

Нечего в sendKeys интеджер пхать :-)
  • 2

#5 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 13 февраля 2014 - 14:00

Нечего в sendKeys интеджер пхать :-)

:rofl:

А слона-то я и не приметил.

Вообще странно, IDE обычно пишет чёрным по-жёлтому:

140213_17645dda.png

Перевод: метод sendKeys(CharSequence...) у типа WebElement не поддерживает аргументы (int)

 

Я думал, там какой-то Exception вываливается.

 

Топик-стартеру:

Решение элементарно

void log_out2(int num) throws Exception
{
	//////////*************///////////////////////
	driver.findElement(By.id("username")).clear();
	driver.findElement(By.id("username")).sendKeys("" + num);
	//////////**************///////////////////
 
}

  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#6 leipreachan

leipreachan

    Активный участник

  • Members
  • PipPip
  • 95 сообщений
  • Город:Москва

Отправлено 13 февраля 2014 - 14:50

 

Нечего в sendKeys интеджер пхать :-)

:rofl:

А слона-то я и не приметил.

Вообще странно, IDE обычно пишет чёрным по-жёлтому:

140213_17645dda.png

Перевод: метод sendKeys(CharSequence...) у типа WebElement не поддерживает аргументы (int)

 

Я думал, там какой-то Exception вываливается.

 

Топик-стартеру:

Решение элементарно

void log_out2(int num) throws Exception
{
	//////////*************///////////////////////
	driver.findElement(By.id("username")).clear();
	driver.findElement(By.id("username")).sendKeys("" + num);
	//////////**************///////////////////
 
}

 

driver.findElement(By.id("username")).sendKeys("" + num);

так нельзя делать, ай-ай-ай!!!

if (num!=null) {

 driver.findElement(By.id("username")).sendKeys(num.toString());

}


Сообщение отредактировал leipreachan: 13 февраля 2014 - 14:51

  • 0

#7 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 13 февраля 2014 - 14:59

driver.findElement(By.id("username")).sendKeys("" + num);

так нельзя делать, ай-ай-ай!!!

if (num!=null) {

 driver.findElement(By.id("username")).sendKeys(num.toString());

}

 

num не может быть равен null, потому что num объявлен как int - это не объект, а примитивный тип.

Если бы num был объявлен как объект Integer, тогда проверка на null нужна обязательно.

 

А вот Ваш код должен выдать ошибку IDE:

140213_17cd0479.png


  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#8 Antony4563

Antony4563

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Трофимов Антон

Отправлено 14 февраля 2014 - 08:41

Больше спасибо за помощь!

Действительно это помогло: driver.findElement(By.id("username")).sendKeys("" + num);


  • 0

#9 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 14 февраля 2014 - 10:32

 

driver.findElement(By.id("username")).sendKeys("" + num);

так нельзя делать, ай-ай-ай!!!

if (num!=null) {

 driver.findElement(By.id("username")).sendKeys(num.toString());

}

 

num не может быть равен null, потому что num объявлен как int - это не объект, а примитивный тип.

Если бы num был объявлен как объект Integer, тогда проверка на null нужна обязательно.

 

А вот Ваш код должен выдать ошибку IDE:

140213_17cd0479.png

 

 

num.toString()  более корректное написание, потому что  (по возможности) преобразует любой тип переменной num в строку, python на ваше предложение срастить строку с числом выдал бы эксепшон.


  • 0

#10 leipreachan

leipreachan

    Активный участник

  • Members
  • PipPip
  • 95 сообщений
  • Город:Москва

Отправлено 15 февраля 2014 - 08:44

 

driver.findElement(By.id("username")).sendKeys("" + num);

так нельзя делать, ай-ай-ай!!!

if (num!=null) {

 driver.findElement(By.id("username")).sendKeys(num.toString());

}

 

num не может быть равен null, потому что num объявлен как int - это не объект, а примитивный тип.

Если бы num был объявлен как объект Integer, тогда проверка на null нужна обязательно.

 

А вот Ваш код должен выдать ошибку IDE:

140213_17cd0479.png

 

 

 

вы правы насчёт ошибки IDE (пару лет уже на java не писал), общий смысл был в использовании toString() =)

 

Использовать конструкцию ""+int  не принято, т.к. такой код "плохо пахнет" =)


  • 0

#11 tab15

tab15

    Активный участник

  • Members
  • PipPip
  • 128 сообщений

Отправлено 17 февраля 2014 - 15:28

По поводу num + "". В конкретном случае разницы практически нет (вообще при компиляции num+"" будет преобразован в StringBuilder.append("").append(num).toString()), но лучше советуют использовать String.valueOf(num). 

А вот вариант num.toString() не может быть, если у нас num - примитивный тип


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных