Я представляю, что ваша структура похожа на:
<div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">External Services</h3>
</div>
</div>
</div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">Other Header</h3>
</div>
</div>
</div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">Another Header</h3>
</div>
</div>
</div>
...
</div>
Есть несколько способов взаимодействия с чем-то подобным, но я приведу только 3 примера:
При этом будет выполнен поиск первого дочернего элемента с тегом div в родительском элементе
by.css('div div.content:nth-of-type(1)')
При этом будет выполнен поиск первого дочернего элемента с любым тегом в его родительском элементе
by.css('div div.content:nth-child(1)')
.для текста внутри тега h3
и выберет элемент над ним на 3 слоя:
by.xpath('//*/h3[text()="External Services"]/../../..')
Или найдите DIV
, который включает H3
и текст H3
External Services
следующим образом:
by.xpath('//div[contains(@class, "tileGrid")][.//h3[text()="External Services"]]')