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

Фотография

Удаление елемента с динамическим ИД


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

#1 bezumka

bezumka

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

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

Отправлено 16 июля 2009 - 14:46

Описывать технологию скрипта не буду, так как это долго , нудно и не кому не интересно. В общих чертах :
Имеется страница создания invoice заполняем поля :
Имя - 123123
Дата - 123123
Валюта - баксы
количество - 12312
Нажимаем создать. Прошло создание и с боку выводится строчка invoice:120 при создании следуещего инвойса будет 121, суть делать, скрипт тестирует создание инвойса, а дальше тиардавн должен за ним подчистить то что он создал, где статические имена проблем не возникает на удаление, а тут кнопка имеет вид : //img[@onclick='deleteInvoice(120)'] где 120 наш ИД

Внимание вопрос : Как я могу скриптом получить число 120 а потом подставить его в другой скрипт который удалит все это дело.
Желательно не на словах а с примерами, заранее спасибо.
  • 0

#2 hachapuri

hachapuri

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

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Сиробаба Александр Эдуардович

Отправлено 16 июля 2009 - 15:01

А можно будет обратиться к строчке которая будет выводиться сбоку, получить ее значение selenium.getText() или selenium.getValue(); смотря что за строчка, используя xpath? потом с помощью substring получем номер.
получается
String number = selenium.getText("xpath").substring(9;12);//в сабстринг вводятся порядковый номер первого и поледнего символа
потом подставляем порядковый номер в xpath кнопки
selenium.click("//img[@onclick='deleteInvoice("+number+")']");
  • 0

#3 hachapuri

hachapuri

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

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Сиробаба Александр Эдуардович

Отправлено 16 июля 2009 - 15:02

Правда будет актуально только для 3-х значных айдишников, для других нужно дописать условие, если нада допишу
  • 0

#4 vitorg

vitorg

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

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

Отправлено 16 июля 2009 - 15:02

А какой HTML-код у этой строчки "invoice:120"?
Предположим, такой:
<span class="result">
invoice:120
</span>
Тогда получаем значение:
String result = selenium.getText("css=span.result");
// дальше вырезаем из полученного циферку 120
Ну и теперь используем:
selenium.click("//img[@onclick='deleteInvoice("+result+")']");

  • 0

#5 bezumka

bezumka

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

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

Отправлено 17 июля 2009 - 07:10

Вообщем пришлось извращаться :

$markup = $this->getHtmlSource();
$invoice = substr($markup, strpos($markup, '<td>Invoice:') + 12,3);


Согласен тупой хард код, но нужна была срочна реализация, всю полученную инфу заганяешь в текстовый файл, а другой функцией подхватываешь знаешь.
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 июля 2009 - 07:42

Вообщем пришлось извращаться :

$markup = $this->getHtmlSource();
$invoice = substr($markup, strpos($markup, '<td>Invoice:') + 12,3);


Согласен тупой хард код, но нужна была срочна реализация, всю полученную инфу заганяешь в текстовый файл, а другой функцией подхватываешь знаешь.

(... а потом люди думают -- чего это наши автотесты так трудно сопровождать, почему они постоянно отваливаются?)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


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

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