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

Фотография

Не получается перемножить два значения


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

#1 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 24 марта 2011 - 07:22

Здравствуйте !

Столкнулся с такой проблемой. Мне для тестирования нужно получить со страницы значение двух объектов(первое - значение поля, второе - курс долора(величина динамическая поэтому приходится брать с сайта)) и потом их перемножить и сравнить со значением общей суммы. Проблема заключается в том что я не могу получить произведение этих двух величин. Почему он не может перемножить значения двух параметров ?

Вот кусок кода(пояснение ниже):
 object_1=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummUsdTextBox")["value"];
 object_3=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_KursCBLabel")["innerHTML"];
 object_2=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummSpan");
 
 Item_rez=object_1.value * object_3;
 Compare(object_2.innerHTML,Item_rez,"Итого к оплате"); 


object_1 - значение поля, object_3- курс долора, object_2- сумма в итоге, Item_rez - результат произведения.

Использую:

TestComplete 7.52.
Язык - С++
Использую конструкцию DOM .
  • 0

#2 SergeyP

SergeyP

    Специалист

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

Отправлено 24 марта 2011 - 07:27

Здравствуйте !

Столкнулся с такой проблемой. Мне для тестирования нужно получить со страницы значение двух объектов(первое - значение поля, второе - курс долора(величина динамическая поэтому приходится брать с сайта)) и потом их перемножить и сравнить со значением общей суммы. Проблема заключается в том что я не могу получить произведение этих двух величин. Почему он не может перемножить значения двух параметров ?

Вот кусок кода(пояснение ниже):

 object_1=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummUsdTextBox")["value"];
 object_3=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_KursCBLabel")["innerHTML"];
 object_2=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummSpan");
 
 Item_rez=object_1.value * object_3;
 Compare(object_2.innerHTML,Item_rez,"Итого к оплате"); 


object_1 - значение поля, object_3- курс долора, object_2- сумма в итоге, Item_rez - результат произведения.

Использую:

TestComplete 7.52.
Язык - С++
Использую конструкцию DOM .



Непонятно, что значит "не могу получить произведение"..
Выдается ошибка ?

Напишите более подробно..

PS
Попробуйте в произведении добавить преобразования множителей к плавающему типу..
  • 0

#3 ksena

ksena

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

  • Members
  • PipPip
  • 99 сообщений
  • Город:Харьков


Отправлено 24 марта 2011 - 08:08

object_3=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_KursCBLabel")["innerHTML"];

Item_rez=object_1.value * object_3;

["innerHTML"] Точно возвращает значение с нужным типом? Может его как-то преобразовать?
  • 0

#4 Vader

Vader

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

  • Members
  • PipPip
  • 129 сообщений
  • Город:Харьков

Отправлено 24 марта 2011 - 08:09

Вы умножаете строки, поэтому ничего и не работает. Приведите их к типу float с помощью Utilities.StrToFloat(). При приведении не забывайте про такую штуку, как Utilities.DecimalSeparator
  • 0

#5 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 24 марта 2011 - 08:45


Здравствуйте !

Столкнулся с такой проблемой. Мне для тестирования нужно получить со страницы значение двух объектов(первое - значение поля, второе - курс долора(величина динамическая поэтому приходится брать с сайта)) и потом их перемножить и сравнить со значением общей суммы. Проблема заключается в том что я не могу получить произведение этих двух величин. Почему он не может перемножить значения двух параметров ?

Вот кусок кода(пояснение ниже):

 object_1=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummUsdTextBox")["value"];
 object_3=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_KursCBLabel")["innerHTML"];
 object_2=t["document"]["all"]["Item"]("ctl00_MainContentPlaceHolder_SummSpan");
 
 Item_rez=object_1.value * object_3;
 Compare(object_2.innerHTML,Item_rez,"Итого к оплате"); 


object_1 - значение поля, object_3- курс долора, object_2- сумма в итоге, Item_rez - результат произведения.

Использую:

TestComplete 7.52.
Язык - С++
Использую конструкцию DOM .



Непонятно, что значит "не могу получить произведение"..
Выдается ошибка ?

Напишите более подробно..

PS
Попробуйте в произведении добавить преобразования множителей к плавающему типу..

Ошибки при этом невозникает, просто в переменную Item_rez пишет NaN.
  • 0

#6 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 24 марта 2011 - 08:47

Вы умножаете строки, поэтому ничего и не работает. Приведите их к типу float с помощью Utilities.StrToFloat(). При приведении не забывайте про такую штуку, как Utilities.DecimalSeparator

Попробую сделать как вы посоветовали. Спасибо!
  • 0

#7 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 24 марта 2011 - 12:47

Заработало!!! Правда результат получается чуть точнее чем отображается на сайте. Как можно ограничить кол-во символов после запятой ?
  • 0

#8 SergeyP

SergeyP

    Специалист

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

Отправлено 24 марта 2011 - 14:58

Заработало!!! Правда результат получается чуть точнее чем отображается на сайте. Как можно ограничить кол-во символов после запятой ?


Воспользуйтесь функцией
aqString.Format

  • 0

#9 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 25 марта 2011 - 05:04


Заработало!!! Правда результат получается чуть точнее чем отображается на сайте. Как можно ограничить кол-во символов после запятой ?


Воспользуйтесь функцией
aqString.Format

Спасибо сейчас попробуем.
  • 0

#10 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 12 апреля 2011 - 12:35

Появилась другая проблема.
У результат дробная и целая части разделяются точкой, когда на сайте запятой. А можно ли перевести результат в тип стринг и найти точку , а потом её заменить запятой ?
  • 0

#11 XXX

XXX

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

  • Members
  • PipPipPipPip
  • 284 сообщений
  • ФИО:Денис Викторович
  • Город:Санкт-Петербург


Отправлено 13 апреля 2011 - 08:43

Появилась другая проблема.
У результат дробная и целая части разделяются точкой, когда на сайте запятой. А можно ли перевести результат в тип стринг и найти точку , а потом её заменить запятой ?


aqString.Replace(str, "," , "."); - в строке str заменяет все запятые на точки
  • 0

#12 Lemur

Lemur

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

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 13 апреля 2011 - 08:54


Появилась другая проблема.
У результат дробная и целая части разделяются точкой, когда на сайте запятой. А можно ли перевести результат в тип стринг и найти точку , а потом её заменить запятой ?


aqString.Replace(str, "," , "."); - в строке str заменяет все запятые на точки

Спасибо! Попробуем.
  • 0


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

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