Вырезаем доллары

В корзине отображается цена товара следующим образом: $ 123.

Посредством storeText я сохраняю это значение в переменную productPrice, и хочу проверить, правильно ли отображается цена товара ($ 123) + цена упаковки ($ 5).

Проблема: если в переменной помимо цифр находится что-то “лишнее” (буквы, философские вопросы, предложения об увеличении your pencil), то операции плюсования, а равно и минусования и всего такого прочего с подобными переменными невозможны.

Решение: удалить из текста переменной ненужные символы.

// сохраняю со страницы сайта цену товара 
 в переменную productPrice в виде 'as is': '$ 123'.
storeText | //div[@class='product_price'] | productPrice
echo | ${productPrice} | 
// превращаю ненужные мне символы '$ ' в пустоту.
storeEval | storedVars['productPrice'].replace("$ ", "") | productPrice
echo | ${productPrice} |

Теперь в переменной productPrice находится обычное число ‘123’, с которым можно математически делать всё, что нужно.

Чтобы в итоге проверить, что в нужном месте страницы отображается определенный текст (цена товара + цена упаковки = $ 128), предварительно потребуется вернуть циферке предваряющие её символы:

storeEval | '$ '+${productPrice} | productPrice
echo | ${productPrice} |

PS Напоминаю сам себе, что storedVars[‘productPrice‘] и ${productPrice} являются идентичными сущностями, просто первая пишется в нотации JavaScript, а вторая – в нотации Selenium IDE.

Также прошу сам себя оценить силу и возможности автозамены…

15 thoughts on “Вырезаем доллары

  1. помогите пожалуйсте решить проблему из строки “Listed with Silvia Sanford DRE# 01213708, Century 21 Home Realtors ” надо вычленить значение 01213708 . спасибо за терпение

  2. Доброго времени суток!
    Вопрос у меня следующий по этому самому “вырезанию” … есть ли возможность отрезать, например, последний (предпоследний, 5й с конца, и т.п.) символ в строке?
    >>>>>>>>>>>>
    Как пример…
    – Допустим есть текст “Displaying products 1 – 9 of 9”.
    – Мне из него нужно вырезать “9”.
    – Но это самое “9” меняется в зависимости от поискового запроса и, соответственно, количества результатов. Изза этого заюзать команду:
    storeEval | storedVars[‘total’].replace(“Displaying products 1 – 9 of “, “”) | total
    …нельзя (ибо за хард-код ататай будет)
    >>>>>>>>>>>>

    Заранее спасибо)

    1. …из положения вышел (особая благодарность нашим java-девам) таким образом:
      – store | Displaying products 1 – 9 of 9 | text

      – storeEval | javascript:{storedVars[‘text’].replace(“Displaying products 1 – “, “”)} | number
      //отрезал заранее известный (константный) кусок текста)
      * number = “9 of 9″

      – storeEval | javascript:{storedVars[‘number’].slice(0,storedVars[‘number’].indexOf(” of”))} | number
      //отрезает от текста слово ” of” и все, что находится после него
      * number = “9”

      Это конечно же не панацея… и не во всех случаях slice поможет…но, как по мне, полезная штука!

      ЗЫ: Если найдутся другие варианты, то интерестно было бы увидеть!

  3. Попыталась воспользоваться советом. Получилась такая вот конструкция:
    [info] Executing: |storeEval | javascript:{storedVars[‘code’].replace(“На открывшейся странице в поле «Код активации» введите: “, “”)} | code |
    [info] script is: javascript:{storedVars[‘code’].replace(“На открывшейся странице в поле «Код активации» введите: “, “”)}
    [error] Threw an exception: storedVars.code.replace is not a function

    Копирую лог вместе с ошибкой.
    Что не верно?
    Сайт, который подвергается резке – обычное письмо для восстановления пароля, в ящике Яндекса. Вырезаю код восстановления из фразы “На открывшейся странице в поле «Код активации» введите: 1G6MO61N.”

    1. У меня не воспроизводится.

      done

      Подобную ошибку вижу впервые, поэтому не владею ситуацией.

      Попробуйте пошаманить – переименуйте переменную ‘code’ в что-то вроде ‘pistolet’.

      И попробуйте запустить тот же скрипт на другом компьютере.

  4. Судя по всему, я неправильно выполнила выбор текста, из которого, соственно, вырезается кусок.

  5. у меня тоже была такая ошибка, я просто переписала кавычки)

  6. Добрый вечер. Подскажите, как при помощи IDE проверить на соответствие только часть урлы?
    Я по ссылке перехожу на domain.com/?authalias=param1_param2_param3_blablabla, селениумом проверяю, что урла должна быть domain.com/?authalias=${param1}_${param2}_${param3}, как избавиться от blablabla, т.к. для теста остальные параметры не важны и мне нужно проверить только N первых?

    1. Если этот “blabla” постоянный — уберите его вообще из текста:

      storeExpression
      domain.com/?authalias=param1_param2_param3_blablabla
      URL

      echo
      ${URL}

      storeEval
      storedVars[‘URL’].replace("blablabla", "")
      URL

      echo
      ${URL}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s