Транспортир: как найти родного брата данного элемента? - программирование
Подтвердить что ты не робот

Транспортир: как найти родного брата данного элемента?

<div>
   <a href='...'>LINK</a>
   <img class='image' />
</div>
<div>
   ...
</div>

Я хочу получить элемент транспортира для тега img с классом image. Я уже знаю текст ссылки "LINK". Другими словами: "Как найти брата того или иного элемента?".

Первая строка кода может выглядеть так:

browser.findElement(by.linkText('LINK'))

Любые идеи?

Спасибо и приветствия

4b9b3361

Ответ 1

Спасибо за вдохновение. Здесь мое решение, а не то, на что я надеялся, но оно работает:

element(by.css('???')).element(by.xpath('..')).element(by.css('???')).click();

Цепочка и путь by.xpath, который позволяет вернуться к родительскому, являются ключами решения.

Ответ 2

Это то, что я на самом деле реализую в Object Page:

  this.widgets['select-status'] = this.ids['select-status']
      .element(by.xpath('following-sibling::div[1]'));
  this.widgets['select-status.dropdown'] = element(by.css('.btn-group.bootstrap-select.open'));

Страница основана на Bootstrap вместе с Bootstrap Select. В любом случае, мы пересекаем DOM вдоль оси following-sibling. Обратитесь к спецификации XPATH для себя.