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

Фотография

Добавить в цикл переменну и это значение в sendkeys


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

#1 QAjuniorHACKER

QAjuniorHACKER

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

  • Members
  • Pip
  • 5 сообщений

Отправлено 14 февраля 2019 - 07:48

Привет друзья!

Изучаю Джаву и селениум, подскажите пожалуйста, хочу в поле логина и пароля ввести значения от -1 до 10000 например

 делаю такой код - не получается

 

подскажите пожалуйста!Мне же надо проверить все значения на длину и граничные значения

public void userLogin() {

for (int storedVal = 0; storedVal < 3; storedVal++)
String storedVal = RandomStringUtils.random(10, 0, 9, false, true, "1234578752".toCharArray());
System.out.println(storedVal);

WebElement loginField = driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/aside/div/div[2]/div[2]/form/div[1]/div/input"));
loginField.sendKeys(storedVal);
WebElement passwordField = driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/aside/div/div[2]/div[2]/form/div[2]/div/input"));
passwordField.sendKeys("parol");
WebElement loginButton = driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/aside/div/div[2]/div[2]/form/div[3]/button"));
loginButton.click();

 


  • 0

#2 QAjuniorHACKER

QAjuniorHACKER

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

  • Members
  • Pip
  • 5 сообщений

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

пробуютак-

public void userLogin() {

for (int storedVal = 0; storedVal < 9; storedVal++)
System.out.println(storedVal);

WebElement loginField = driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/aside/div/div[2]/div[2]/form/div[1]/div/input"));
loginField.sendKeys(storedVal);

в сендкейсе переменная горит красненькая((

for (int storedVal = 0; storedVal < 9; storedVal++)
System.out.println(storedVal);
String storedVal = "1";
WebElement loginField = driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/aside/div/div[2]/div[2]/form/div[1]/div/input"));
loginField.sendKeys(storedVal);

или так????


  • 0

#3 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


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

На текстовое значение длиной -1 я бы посмотрела. :)
 
for (int storedVal = 0; storedVal < 9; storedVal++)
System.out.println(storedVal);
 
Это означает: начиная со значения storedVal  = 0 и пока storedVal < 9 - выполнять System.out.println(storedVal), после каждого прохода увеличивать значение переменной (storedVal++).

При этом storedVal - локальная переменная этого цикла, вне for'а её не существует, поэтому sendKeys знать не знает, что это и откуда это взять.

 

Соответственно, из первого поста:

 

for (int storedVal = 0; storedVal < 3; storedVal++)
String storedVal = RandomStringUtils.random(10, 0, 9, false, true, "1234578752".toCharArray());
System.out.println(storedVal);

 

Почти тоже самое, только ещё кривее. Вы говорите, что у Вас есть переменная storedVal типа int, по которой идёт цикл (см.выше), но в самом цикле говорите, что нужна еще одна переменная с тем же названием storedVal, но типом String (это в принципе неправильно). Если измените название переменной - тоже получится ерунда. Просто x раз (в  данном случае - 3 раза) будет заново генерироваться рандомная строка. Зачем? Чем Вас не устраивает то, что сгенерировалось в первый раз?

 

Если хотите как-то использовать переменную вне цикла (в sendKeys, например), то её надо объявить ДО цикла, в цикле (в теле цикла) её изменить, после цикла - использовать. При этом для самого цикла будет другая переменная.

Например:

String storedVal = "";

for (int i= 0; i < 3; i++) {
       <тут как-то меняете значние storedVal>

}
System.out.println(storedVal);

 

Зачем Вам тут в принципе циклы, если Вы сразу всю строку радомную генерите - не понимаю.

 

п.с.: локаторы - тихий ужас.

п.п.с: значение второго куска кода во втором сообщении - вообще вне моего понимания, смотрится как просто бессмысленный набор команд, без какой либо логики и взаимосвязи. 

п.п.п.с: я бы на Вашем месте не стала мешать всё в одну кучу - сначала надо изучить хотя бы основы Java, а уже потом добавлять Selenium. Потому что в том, что Вы привели - селениума нет по сути, все проблемы именно из-за незнания ЯП.


  • 0


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

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