Подтвердите наличие вложенного веб-элемента с помощью xpath (Selenium Webdriver) - PullRequest
0 голосов
/ 20 февраля 2019

Так что это HTML дизайн, и я пытаюсь увидеть, отображается ли <i class="fas fa-lock"></i> для конкретного текста «Удачи, Гарри».

Как идентифицировать несколько веб-элементов с помощью xpath?

Я могу использовать xpath для индивидуальной идентификации этих веб-элементов, но как убедиться, что они вложены?

 <div class="card">

  <div class="overlayBg">   

   <div class="duration_notif">22:33</div>
     <i class="fas fa-lock"></i>
   </div>

   <div class="card-body">
     <h5 class="card-title">
      <div class="LinesEllipsis  ">
        <div>Good luck Harry</div>
      </div>
     </h5>
   </div>
</div>

Есть два веб-элемента, которые необходимо проверить, если они как-то вложены друг в друга,

Я использую Pagefactory и Selen с Java.

1 Ответ

0 голосов
/ 20 февраля 2019

Вложенный в том смысле, что <div>Good luck Harry</div> является потомком другого div, который является потомком h5, который является потомком <div class="card-body">?

//div[@class="card-body"]/h5[@class="card-title"]/div[contains (@class, "LinesEllipsis")]/div

Вxpath / обозначает прямое наследование - узел должен быть дочерним элементом 1-го уровня другого.
Когда вы используете этот xpath для работы с элементом, благодаря тому, что он найден, вы гарантируете, что он имеет эту структуру предка..

Вложены в том смысле, что <div class="overlayBg"> и <div class="card-body"> имеют общего родителя - что div?

/div//div[@class="card-body" and preceding-sibling::div[@class="overlayBg"]]/h5[@class="card-title"]/div[contains (@class, "LinesEllipsis")]/div

Вы начинаете с общего родителя и расширяете предикат с помощьюpreceding-sibling ось - что означает "должен быть узел на том же уровне, который соответствует этому условию";и находясь на одном уровне, это означало бы, что они совместно используют родительский узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...