Для захвата динамических значений лучший способ, которым я пользуюсь, это "xpath".Причина этого заключается в том, что всякий раз, когда вы обращаетесь к динамическому элементу, вам необходимо выяснить путь html родительского элемента к этому элементу.
Пример:
Предположим, у нас есть источник HTML, такой как:
<div class="sfibbbc">
<div id="sbtc" class="sbtc">
<div class="sbibtd">
<div id="sfdiv" class="sbibod ">
<div class="gstl_0 sbib_a" style="height: 38px;">
<div id="gs_st0" class="gsst_b sbib_c" style="line-height: 38px;" dir="ltr">
<a class="gsst_a" href="javascript:void(0)" aria-label="Search by image">
<span id="gs_si0">
<span id="qbi" class="gsst_e"></span>
</span>
</a>
</div>
Здесь, в этом коде, если нам нужно найти {span id = "qbi" class = "gsst_e" / span}, и id является динамическим, что означает, что он изменяется при каждом входе на эту страницу.
Для этого нам нужно получить xpath, например ->
// div [@ id = 'gs_st0'] // a // span // span [@ class = 'gsst_e']
ТАК что каждый раз, когда он генерирует новый идентификатор, WebDriver также может находить элемент по его родительскому пути.