t.me/atinfo_chat Telegram группа по автоматизации тестирования

Проблема с локаторами


(Katana) #1

Привет всем. Нужна помощь в Selenium IDE (только начала учиться)

Проблема возникает при воспроизведении записанного test case на этапе, когда необходимо ткнуть на соответствующую кнопку во всплывающем окне. Но в результате пишет Element id = popup-checkout not found. Пробовала разные варианты - не помогает = (
Вот часть кода:
 
<td>click</td>
<td>name=topurchases</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=popup-checkout</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=reciever_name</td>
<td>Ann</td>
 
Может кто подскажет, что не так?
 
P.S. Не судите строго, я только учусь )

(Alexander Petrovich) #2

Скорее всего надо воткнуть ожидание, так как попап грузится не сразу

click name=topurchases

waitForElementPresent id=popup-checkout

clickAndWait id=popup-checkout


Я понял, что попап вызывается первым кликом?


(Katana) #3

 

Да, все верно ... первим кликом.
Я вот пробовала разные варианты и получилось следующее. Если в строке Target вместо 
<td>name=topurchases</td>
выбрать из набора другой вариант локатора
//div[@id='head_banner_container']/div[2]/div/div/div/div[3]/div/button
и немного преобразовать его (то есть удалить непостоянные) в
<td>//div[@id='head_banner_container']//button</td>
то тоже работает но как то через ж*** ) +  возникает уведомление Timed out after 30000ms. Но работает ведь! о_О
Если менять значение "30000"- ничего не помогает и вообще, после етого идет ряд других ошибок которые можно исправить, но опять таки через ж*** )
 

Попробовала ваш вариант, работает как часы. Большое спасибо =)))


И в догонку еще вопрос. Другая задача: надо открыть гугл, набрать часть слова (например rozet) и выбрать из выпадающего окна нужный вариант (rozetka) и перейти по ссылке в новое окно.
Код:

selenium.open("/");
selenium.type("id=gbqfq", "rozet");
selenium.click("css=div.gsq_a > table > tbody > tr > td > span");
selenium.selectWindow("name=25662");
 

Тест падает на 


selenium.click("css=div.gsq_a > table > tbody > tr > td > span");
 
Можно как то заставить его выбрать нужное?
 
 

(Mykhailo Poliarush) #4

selenium.click("css=div.gsq_a > table > tbody > tr > td > span");

тут проблема в локаторах, вам надо написать правильный локатор

http://automated-testing.info/trainings/video-kak-pisat-lokatory-dlya-selenium-webdriver/report


(falke5) #5

после того как Вы ввели в запрос текст, я думаю не плохо было бы ещё задержку поставить(pause)


(Katana) #6

я понимаю что проблема в локаторах. но дело в том, что по запросу Find елемент находится ...


(Katana) #7

Falke5, это я пробовала.... к сожалению не помогло =(


(Katana) #8

А может проблема просто в плагине?