2014-08-27 3 views
0

Я пишу тест селена для приложения java, который создает новый идентификатор после каждого сеанса входа в систему, поэтому я не могу найти элемент, использующий ID.Xpath контейнера с таким же именем класса

Как найти второй или третий класс в XPath, который имеет такое же имя, без использования идентификаторов

<div class="aui_FieldLayout_InputContainer"> 
<textarea id="gwt-uid-1601" class="aui-TextAreaInput printable" rows="4"></textarea> 
</div> 

<div class="aui_FieldLayout_InputContainer"> 
<textarea id="gwt-uid-1602" class="aui-TextAreaInput printable" rows="4"></textarea> 
</div> 

<div class="aui_FieldLayout_InputContainer"> 
<textarea id="gwt-uid-1603" class="aui-TextAreaInput printable" rows="4"></textarea> 
</div> 

ответ

2

Есть несколько способов сделать это. Одним из вариантов было бы найти элементы по XPath и убедитесь, что id атрибут начинается с gwt-uid-:

driver.findElements(By.xpath('//textarea[starts-with(@id, "gwt-uid-")]')) 

Другим вариантом было бы полагаться на контейнерах textarea «s:

driver.findElements(By.xpath('//div[@class="aui_FieldLayout_InputContainer"]/textarea')) 

Есть, конечно, другие способы сделать это, который является более надежным и предпочтительным, зависит от структуры страницы, уникальности имен атрибутов и значений и т. д.

Надеюсь, что это поможет.

Смежные вопросы