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

Фотография

Ошибка в работе со строками Selenium Java

selenium java

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

#1 zagorka

zagorka

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

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

Отправлено 25 сентября 2016 - 20:20

String strOrderSum = driver.findElement(By.cssSelector(".cart-uah.cart-sum-uah>span")).getText();

Тут я получаю строку "7999".

orderSum = Double.valueOf(strOrderSum);

И переобразовую ее в double. Но мне выдает ошибку. В чем дело?


  • 0

#2 Prettser

Prettser

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

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


Отправлено 26 сентября 2016 - 03:49

orderSum это double?

 

Попробуйте Double.parseDouble(strOrderSum);

 

Ну а вообще надо бы еще прикладывать текст ошибки. Да и эта проблема не относится к селену.


  • 0

#3 zagorka

zagorka

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

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

Отправлено 26 сентября 2016 - 07:03

orderSum это double?

 

Попробуйте Double.parseDouble(strOrderSum);

 

Ну а вообще надо бы еще прикладывать текст ошибки. Да и эта проблема не относится к селену.

Попробывавл та же ошибка. вот она:

 

<![CDATA[java.lang.NumberFormatException: For input string: "7 999"

 

<exception class="java.lang.NumberFormatException">


  • 0

#4 Prettser

Prettser

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

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


Отправлено 26 сентября 2016 - 07:28

В первом сообщении Вы привели строку "7999", а по факту то оказывается "7 999"

 

Double.parseDouble(strOrderSum.replaceAll(" ","")); можно и иначе с приведением к формату, но это тоже сработает. Удалит пробелы


  • 0

#5 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 26 сентября 2016 - 07:28

Ты "7999" можешь преобразовать из строки в double

"7 999" не можешь, т.к. есть пробел

Самый простой способ у строки вызвать метод replaceAll(" ", ""); - т.е. мы заменяем пробел на пусто

String strOrderSum = "7 999".replaceAll(" ", "");
        
double orderSum = Double.valueOf(strOrderSum);
System.out.println(orderSum + 0.1);

  • 0

#6 serjb9

serjb9

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

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

Отправлено 26 сентября 2016 - 07:36

попробуйте также Double.parseDouble(strOrderSum.replaceAll("\\s",""));


  • 0

#7 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 26 сентября 2016 - 07:40

попробуйте также Double.parseDouble(strOrderSum.test.replaceAll("\\s",""));

 

а что такое "test" ?


  • 0

#8 serjb9

serjb9

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

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

Отправлено 26 сентября 2016 - 08:22

 

попробуйте также Double.parseDouble(strOrderSum.test.replaceAll("\\s",""));

 

а что такое "test" ?

 

вспоминал какой whitespace символ надо вставить =)


  • 0

#9 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 26 сентября 2016 - 08:25

 

 

попробуйте также Double.parseDouble(strOrderSum.test.replaceAll("\\s",""));

 

а что такое "test" ?

 

вспоминал какой whitespace символ надо вставить =)

 

 

Так лучше и не вспоминать))

    1.strOrderSum = "7 999".replaceAll(" ", "");
    2.strOrderSum = "7 999".replaceAll("\\s", "");

Строка 1 более читабельна, чем строка 2. Имхо, конечно


  • 2



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

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