можно ли вернуться к родительскому тегу из текущего элемента, пока он не обнаружит атрибут title, присутствующий в селене - PullRequest
0 голосов
/ 16 июня 2020
   <div class="one" title="I have a title">
     <div class="two">
       <div class="three">
         <label>
           <input type="checkbox" class="four" readonly="" value="on">

           <div class="clickable"></div>
            <div class="four">iam a text</div>
         </label>
       </div>
    </div>
  </div>

Элемент с классом «clickable» - это мой целевой элемент, который нужно щелкнуть, и я хотел бы получить родительский элемент с заголовком в атрибуте

WebElement element = driver.findElement(By.xpath("//*[contains(text(),'iam a text')]/preceding::div[@class='clickable']"));

Пример псевдокода будет

while(hasParentElemets()){
if(currentElement.hasTitle())
 break;
else
currentElement = currentElement.parent();
}

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете попробовать найти родительский элемент с помощью xpath. попробуйте что-то вроде этого. Будет найден родительский элемент, содержащий атрибут title.

WebElement myTitleElement = driver.findElement(By.xpath("//div[@class='clickable']/ancestor::div[@title]"));
...