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

Как сэмулировать нажатие кнопки с динамическим id


(monkerwack) #1

 

Доброго времени суток!
Я использую Selenium IDE 1.7.2.
Возник такой вопрос:
Как сэмулировать нажатие кнопки с динамическим id  (генерируется на сервере)?
вот моя кнопка: 
<button id="OpenForm_InplaceFormCollectionContainer_000000019CFE5BA653CF40DF8A87F5C1EBF7B637-button-to" class="mailButton ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only ui-state-hover" type="button" role="button" aria-disabled="false"></button>
 
Я использовал селектор: 
css=button[id$="-button-to"]
 
Автоматическим тестом Selenium IDE кнопка подсвечивается, но не нажимается.
В логе появляется сообщение [error] Element css=button[id$="-button-to"] not found
но если сделать далклик по этой команде, то кнопка отрабатывает.
 
Заранее спасибо!

(mbeider) #2

you should use xpath locator using contains() method inside.


(Mykhailo Poliarush) #3

Может быть баг в Selenium IDE. Можно еще попробовать использовать xpath c функциями contains(), starts-with(), ends-with() 

http://www.w3schools.com/xpath/xpath_functions.asp


(Vitalii) #4

<tr>
    <td>click</td>
    <td>//*[contains(@id, '-button-to')]</td>
    <td></td>
</tr>


(oleksergey) #5

Из личного, правда не очень большого опыта, могу сказать что ends-with() не поддерживается selenium. Вместо ends-with() я использовал substring().

Выглядит это так:

//E[substring(@A, string-length(@A) - string-length('t')+1)='t']


(monkerwack) #6

Thanks people, using xpath locator with "contains" method really helped to deal with this issue.

Much appreciated.