Lenuzza
(Lenuzza)
18.Октябрь.2012 13:58:20
#1
Добрый день!
снова нужны советы опытных автоматизаторов!
цель теста - проверить наличие записи в таблице в одной строке.
например, есть такая таблица с данными. строки могут быть в хаотичном порядке. нужно проверить, что запись name2 существует, и в этой же строке находится и user2, и info2. все элементы name*, user* и info* - ссылки.
1
name1
user1
info1
2
name2
user2
info2
3
name3
user3
info3
как найти элемент "name2" я нашла >> assertElementPresent xpath=(//a[contains( text(),'dom3.net')])
а вот как связать поиск для всех нужных элементов - вот тут и возникла проблема.
поделитесь опытом! буду очень признательна!
user12
(user12)
18.Октябрь.2012 14:17:13
#2
Находишь строку, где находится name2
Находишь номер строки, т.е.2
При поиске user2 и info2 в xpath вставляешь номер строки
Т.е. когда взял данные, то просто проверяешь, user2 начинаетя с "user", а info2 с "info"
Все просто
Этот способ хорош, если маленькая таблица, если же таблица на 100-1000 строк тогда уже надо в БД лезть или использовать поиск
user12
(user12)
18.Октябрь.2012 14:21:24
#3
мда, сложно я расписал
Сейчас нет особо времени, если в Понедельник буду свободен, то более подробно распишу
И что ты используешь:
Selenium IDE или Selenium 2 ???
furiousduck
(Alexander Petrovich)
18.Октябрь.2012 19:21:46
#4
Дайте html код этой вашей таблицы. Напишу точно :)
polusok
(Mykhailo Poliarush)
18.Октябрь.2012 19:27:15
#5
polusok
(Mykhailo Poliarush)
18.Октябрь.2012 19:27:59
#6
да если дадите html код страницы, то поможем написать конкретный xpath
Lenuzza
(Lenuzza)
19.Октябрь.2012 08:24:00
#7
вот html этой таблицы
<tr class="">
<td class="noBorder">
<td class="line">
<div>
<a class="thickbox" href="../asp/domedit.asp?d=domainname1&TB_iframe=true&height=480&width=650">domainname1 </a>
</div>
</td>
<td class="line">
<div>
<a class="thickbox" href="../asp/userinfo.asp?pop=up&uid=user1&KeepThis=true&TB_iframe=true&height=480&width=650">user1 </a>
<a class="anchorLink" onclick="FilterByUser('user1',1);">
</div>
</td>
<td class="line">
<a id="domainListRepeater_lb_renew_1" class="thickbox" href="DomainRenew.aspx?domainname=domainname1&domainuser=user1&domainid=3792&KeepThis=true&TB_iframe=true&height=450&width=750">Renew </a>
<div class="line1 noWrap">11/6/2011 7:06:22 PM </div>
</td>
</tr>
в последней колонке два значения (ссылка, дата).
за видео спасибо! буду смотреть и разбираться
polusok
(Mykhailo Poliarush)
19.Октябрь.2012 08:31:17
#8
где-то вот так должно работать
//a[text()="user1"]/../../following-sibling::*//a
//a[text()="user1"]/../../preceding-sibling::*//a
Lenuzza
(Lenuzza)
19.Октябрь.2012 09:13:20
#9
к сожалению,
//a[text()="user1"]/../../following-sibling::*//a
//a[text()="user1"]/../../preceding-sibling::*//a
не прокатило.
а вот эта конструкция - рабочая.
xpath=//a[contains( text(), 'name1')]/../../following-sibling::*//a[contains( text(), 'user1')]/../../following-sibling::*//a[contains( text(), 'Renew')]
только как теперь сюда засунуть переменную для name1?
объявила ее в начале как storeExpression > name1 > name
вариации на тему //a[contains( text(), storedVars['name'])] - не работает.
подскажите, как правильно
Taras
(Taras)
19.Октябрь.2012 09:25:32
#10
обговаривалось уже
нужно обертку клас для таблици написать
тогда будете парсить ее в матрицу просто и дергать обьект
Lenuzza
(Lenuzza)
19.Октябрь.2012 09:54:32
#11
а можете чуть подробнее об этом рассказать, поскольку первый раз сталкиваюсь
Taras
(Taras)
19.Октябрь.2012 10:24:08
#12
polusok
(Mykhailo Poliarush)
19.Октябрь.2012 10:50:00
#13
в selenium ide обращение к переменной делается вот так вот ${name}
polusok
(Mykhailo Poliarush)
19.Октябрь.2012 10:55:38
#14
да я свой вариант не проверял, там могу быть ошибки :)
может быть ваш вариант и рабочий но выглядит очень избыточным
хотя, с другой стороны если работает, то это уже плюс :)