Удаление елемента с динамическим ИД
Автор bezumka, 16 июл 2009 14:46
Сообщений в теме: 5
#1
Отправлено 16 июля 2009 - 14:46
Описывать технологию скрипта не буду, так как это долго , нудно и не кому не интересно. В общих чертах :
Имеется страница создания invoice заполняем поля :
Имя - 123123
Дата - 123123
Валюта - баксы
количество - 12312
Нажимаем создать. Прошло создание и с боку выводится строчка invoice:120 при создании следуещего инвойса будет 121, суть делать, скрипт тестирует создание инвойса, а дальше тиардавн должен за ним подчистить то что он создал, где статические имена проблем не возникает на удаление, а тут кнопка имеет вид : //img[@onclick='deleteInvoice(120)'] где 120 наш ИД
Внимание вопрос : Как я могу скриптом получить число 120 а потом подставить его в другой скрипт который удалит все это дело.
Желательно не на словах а с примерами, заранее спасибо.
Имеется страница создания invoice заполняем поля :
Имя - 123123
Дата - 123123
Валюта - баксы
количество - 12312
Нажимаем создать. Прошло создание и с боку выводится строчка invoice:120 при создании следуещего инвойса будет 121, суть делать, скрипт тестирует создание инвойса, а дальше тиардавн должен за ним подчистить то что он создал, где статические имена проблем не возникает на удаление, а тут кнопка имеет вид : //img[@onclick='deleteInvoice(120)'] где 120 наш ИД
Внимание вопрос : Как я могу скриптом получить число 120 а потом подставить его в другой скрипт который удалит все это дело.
Желательно не на словах а с примерами, заранее спасибо.
#2
Отправлено 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+")']");
получается
String number = selenium.getText("xpath").substring(9;12);//в сабстринг вводятся порядковый номер первого и поледнего символа
потом подставляем порядковый номер в xpath кнопки
selenium.click("//img[@onclick='deleteInvoice("+number+")']");
#3
Отправлено 16 июля 2009 - 15:02
Правда будет актуально только для 3-х значных айдишников, для других нужно дописать условие, если нада допишу
#4
Отправлено 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+")']");
#5
Отправлено 17 июля 2009 - 07:10
Вообщем пришлось извращаться :
Согласен тупой хард код, но нужна была срочна реализация, всю полученную инфу заганяешь в текстовый файл, а другой функцией подхватываешь знаешь.
$markup = $this->getHtmlSource();
$invoice = substr($markup, strpos($markup, '<td>Invoice:') + 12,3);
Согласен тупой хард код, но нужна была срочна реализация, всю полученную инфу заганяешь в текстовый файл, а другой функцией подхватываешь знаешь.
#6
Отправлено 17 июля 2009 - 07:42
(... а потом люди думают -- чего это наши автотесты так трудно сопровождать, почему они постоянно отваливаются?)Вообщем пришлось извращаться :
$markup = $this->getHtmlSource();
$invoice = substr($markup, strpos($markup, '<td>Invoice:') + 12,3);
Согласен тупой хард код, но нужна была срочна реализация, всю полученную инфу заганяешь в текстовый файл, а другой функцией подхватываешь знаешь.
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных