2015-02-23 5 views
0

Пример HTML ниже. Я хочу найти элементы, которые содержат текст Лицо Атрибуты и Возраст.Любые предложения по размещению нижеуказанных элементов в Selenium

<div id="ext-gen210" class="x-tool x-tool-toggle"></div> 
<span id="ext-gen214" class="x-panel-header-text">Person Attributes</span> 
</div> 
<div id="ext-comp-1071" class=" DDView ListView" style="height: auto;"> 
    <p class="dragItem "><i class="icon-Gen"></i>Age</p> 
</div> 

Примечание: Я ищу решение без использования xpath или id или className, поскольку они могут меняться с каждым новым выпуском моего сайта.

Я пытался найти их с помощью

'имя' -> By.name ("Person Attributes") и By.name ("Возраст"), но оба потерпели неудачу.

ответ

2

By.name проверить, будет для name атрибута. Что вам нужно, чтобы проверить текст элемента с помощью By.xpath:

By.xpath('//div[span/text() = "Person Attributes"]') 

Или, вы также можете проверить, что id элемент начинается сext-gen:

By.xpath('//div[starts-with(@id, "ext-gen")]') 
+0

Спасибо !! Это работает так, как ожидалось. – bpk

+0

Можете ли вы также рассказать мне, как проверить текст, используя start-with или любой другой способ? – bpk

+0

@bpk обязательно, обратитесь к тексту как 'text()' или '.':' // div [start-with (., "Begin")] '. – alecxe